delprune on a single mailbox

Andrew Morgan morgan at orst.edu
Fri Nov 6 13:14:02 EST 2015


On Fri, 6 Nov 2015, Marcus Schopen via Info-cyrus wrote:

> Am Mittwoch, den 04.11.2015, 06:36 -0500 schrieb Adam Tauno Williams via
> Info-cyrus:
>> 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 mailbox."
>> 
>> Via cyradm -
>> 
>> cyrus.example.com> mboxcfg user.adam expire 365 
>> cyrus.example.com> info user.adam 
>> {user.adam}:
>>   condstore: false
>>   duplicatedeliver: false
>>   expire: 365
>>   lastpop:
>>   lastupdate: 13-Aug-2008 19:37:31 -0400
>>   partition: default
>>   sharedseen: false
>>   size: 12325671
>> 
>> AFAIK the annotations supported by cyradm/mboxcfg are:
>> 
>> * comment – A free-form text comment or description to be attached to
>> the mailbox.
>> * condstore – This annotation is only supported in the 2.3.x release
>> series starting with 2.3.3 although its use is not recommended until
>> 2.3.8. As of the 2.4.x release series CONDSTORE functionality is
>> enabled on all mailboxes regardless of annotation and attempting to set
>> this annotation will result in a permission denied message. On releases
>> where this annotation is supported setting a value of “true” will
>> enable CONDSTORE functionality1.
>> * expire – If an expire value is provided messages will be
>> automatically deleted from the mailbox once the specified number of
>> days has elapsed.
>> * news2mail - 
>> * sharedseen - Enables the use of a shared \Seen flag on messages
>> rather than a per-user \Seen flag. The 's' right in the mailbox ACL
>> still controls whether a user can set the shared \Seen flag.
>> * sieve – In the case of a shared folder the “sieve” parameter
>> specifies the name of a global SIEVE script that will be used for every
>> message delivered to the folder.  This value is ignored for personal
>> mailboxes (mailboxes including and subordinate to a user's INBOX).
>> * squat – Flags the mailbox to be included for indexing when the SQUAT
>> process performs index generation.
>> 
>> 
>> > But is it possible to expunge a message immediately when it's deleted
>> > by client and not with the next expire run?
>> 
>> Not if delayed expunge is enabled AFAIK; that would defeat the purpose.
>
> I set "mboxcfg user.test expire 1" on a test mailbox, but it has no
> effect on nightly delprune set in cyrus.conf EVENT: 
>
>  delprune cmd="/usr/sbin/cyrus expire -E 1 -X 7 -D 7" at=0501"
>
> Messages deleted two days ago are still in the file system.
>
> localhost> info user.test
> {user.test}:
>  duplicatedeliver: false
>  expire: 1
>  lastpop:
>  lastupdate:  4-Nov-2015 17:14:20 +0100
>  partition: default
>  pop3newuidl: true
>  sharedseen: false
>  size: 0

The expire annotation causes Cyrus to delete messages older than <expire> 
days.  If you have delayed_expunge enabled, the messages still remain on 
the filesystem until you purge them using cyr_expire.

 	Andy


More information about the Info-cyrus mailing list