**unexpunge**
*************

Recover messages the user has (accidentally) deleted.


Synopsis
========

   **unexpunge** [ **-C** *config-file* ] **-l** *mailbox* [ *uid*... ]
   **unexpunge** [ **-C** *config-file* ] **-t** *time-interval* [ **-d** ] [ **-v** ] [ **-f** *flagname* ] **mailbox**
   **unexpunge** [ **-C** *config-file* ] **-a** [ **-d** ] [ **-v** ] [ **-f** *flagname* ] *mailbox*
   **unexpunge** [ **-C** *config-file* ] **-u** [ **-d** ] [ **-v** ] [ **-f** *flagname* ] *mailbox* *uid*...


Description
===========

The **unexpunge** program is used to list or restore messages which
have been deleted from a mailbox, but still reside in the Cyrus IMAP
mail spool.

This utility is only useful when the server is configured with
"expunge_mode" set to "delayed" in its configuration file.

**unexpunge** reads its configuration options out of the imapd.conf(5)
file unless specified otherwise by **-C**.


Options
=======

-C config-file

   Use the specified configuration file *config-file* rather than the
   default imapd.conf(5).

-l, --list

   List the expunged messages in the specified mailbox which are
   available for restoration. Optionally, only list the messages in
   the mailbox matching the UIDs in the space-separated list at the
   end of the command invocation.

-t time-interval, --within-time-interval=time-interval

   Unexpunge messages which were expunged within the last "time-
   interval" seconds. Use one of the trailing modifiers -- "m"
   (minutes), "h" (hours), "d" (days) or "w" (weeks) -- to specify a
   different time unit.

-a, --all

   Restore **all** of the expunged messages in the specified mailbox.

-u, --uids

   Restore only messages matching the UIDs, in a space-separated list
   at the end of the command invocation, in the specified mailbox.

-d, --unset-deleted

   Unset the *\Deleted* flag on any restored messages.

-f flagname, --set-flag=flagname

   Set the user flag *\flagname* on the messages restored, making it
   easier for the user(s) to find the restored messages and operate on
   them (in a batch).

-v, --verbose

   Enable verbose output/logging.


Examples
========

   **unexpunge -l** *user/john@example.org*

   List the messages that are expunged and could be restored for
   mailbox *user/john@example.org*.

   **unexpunge -u** *user/john@example.org 278787 278788*

   Unexpunge two of these messages.

   **mbexamine** *user/john@example.org*

   Examine the mailbox for the two restored messages.

   **unexpunge -u -d** *user.johnsmith 46908*

   Unexpunge a select message based on its UID, clearing the
   *\Deleted* flag.

   **unexpunge -a** *user.johnsmit.Trash*

   Unexpunge all messages in a user's Trash, but leave them flagged
   *\Deleted*.

   **unexpunge -a -f** *Flagged user.johnsmith.Trash*

   The same, but setting user flag *\Flagged* to facilitate later bulk
   operations.

   **unexpunge -t** *24h* **-d -f** *Flagged user.johnsmith*

   Unexpunge messages matching only a given time period.

   **unexpunge -t** *24h* **-d -f** *Flagged user/johnsmith*

   The same command, supporting the "unixhierarchysep: yes" option in
   imapd.conf(5).


Files
=====

/etc/imapd.conf


See Also
========

imapd.conf(5)
