UNEXPUNGE(8)

NAME
unexpunge - Cyrus IMAP documentation

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) <#std-cyrusman-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) <#std-cyrusman-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) <#std-cyrusman-imapd.conf-5>.

FILES

/etc/imapd.conf

SEE ALSO

imapd.conf(5) <#std-cyrusman-imapd.conf-5>

Author
The Cyrus Team, Nic Bernstein (Onlight), Jeroen van Meeuwen (Kolab Systems)

Copyright
1993–2026, The Cyrus Team