Delayed expunge / undeleting messages

Simon Matter simon.matter at invoca.ch
Thu Jan 18 03:57:05 EST 2007


> Hi!
>
> The purpose of the delayed expunge mode appears to be to reduce the
> amount of disk I/O during expunge and add responsiveness to the client.
> But I've been thinking... I've got lots of users that accidentally
> delete important messages, and sometimes even ask us immediately after
> deleting (and expunging) those messages if they could be recovered. Now
> if the message was alive last night when we backed the system up, it
> could be recovered. But if the message was new, it couldn't.
>
> But if there is a delay in expunging the message, the file containing
> the mesage might just lie around in the mail spool, and could be
> identified reasonably easily. Is there a way to add the message back
> to the index? A quick hack would probably be something like copying the
> message file to N., where N is an unused message number, and
> reconstructing the mailbox. But is there another way? I always feel
> uncomfortable writing stuff to the mailspool bypassing Cyrus.
>

Isn't that what unexpunge is for?

List deleted messages:
su - cyrus -c "/usr/lib/cyrus-imapd/unexpunge -l user.xxxxxxxxx"

Unexpunge a single message:
su - cyrus -c "/usr/lib/cyrus-imapd/unexpunge -u -d -v user.xxxxxxxxx 14156"

Unexpunge all deleted messages:
su - cyrus -c "/usr/lib/cyrus-imapd/unexpunge -a -d -v user.xxxxxxxxx"

Our expunge delay is 7 days and it works wonderful.

Simon


More information about the Info-cyrus mailing list