delprune on a single mailbox

Marcus Schopen lists at
Tue Nov 3 02:24:28 EST 2015


Am Montag, den 02.11.2015, 10:58 -0500 schrieb Adam Tauno Williams via
> On Sun, 2015-11-01 at 14:40 +0100, Marcus Schopen via Info-cyrus wrote:
> > Am Sonntag, den 01.11.2015, 13:35 +0100 schrieb Marcus Schopen via
> > Info-cyrus:
> > > Hi,
> > > globally in cyrus.conf delprune is set to
> > > delprune	cmd="/usr/sbin/cyrus expire -E 1 -X 7 -D 7" at=0501
> > > For a single mailbox I don't want to keep deleted mails for 7 days,
> > > but
> > > expire them immediately or once a day per cron. How to do that?
> > Forogt to say that delete_mode and expunge_mode is set to delayed.
> > Via cron this should work for an immediate cleanup/expire:
> You can set an expire annotation per mailbox.  

How do I do that? From cyr_expire manpage:

"The value of the /vendor/cmu/cyrus-imapd/expire annotation is inherited
by all children of the given mailbox, so an entire mailbox tree can be
expired by seting a single annotation on the root of that tree. If a
mailbox does not have a /vendor/cmu/cyrus-imapd/expire annotation set on
it (or does not inherit one), then no messages are expired from the

Is this correct?

setannotation "user.myuser"
"/vendor/cmu/cyrus-imapd/expire" ("value.shared" "0")

But is it possible to expunge a message immediately when it's deleted by
client and not with the next expire run?

> Downside is that I
> believe the annotation will be 'inherited' but subordinate mailboxes;
> which stinks for some use-cases.
> > su - cyrus -c "/usr/sbin/cyrus expire -E 1 -X 0 -D 0 -v -p
> > user.mailboxname"
> FYI, I believe with the very latest Cyrus the "su -" is unnecessary as
> it will automatically handle the context change when run as root.


More information about the Info-cyrus mailing list