Re: [Dovecot] Please HELP: how to delete all messages older than X days from the server?

2013-08-07 Thread Răzvan Sandu
On Tue, 06 Aug 2013 19:18:15 +0200, Pascal Volk a scris:

 There is also the -A option, see
 http://wiki2.dovecot.org/Tools/Doveadm/Expunge#section_options


Thank you, but doveadm expunge will ask for the mailbox name:

[root@mail1 ~]# doveadm expunge -u john@example.com ON 2013-08-07
doveadm(root): Fatal: expunge: To avoid accidents, search query must
contain MAILBOX in all search branches

What I need is to traverse *all* directories under
/var/spool/mail/vhosts/domainname/  (which are
/var/spool/mail/vhosts/domainname/username, with further variable
subdirectories, name never known in advance...) and to delete all
messages older than X days (incoming, sent, drafts, trash, etc.)

This must be done without manual confirmation (are you sure...?) (if I
do it via a script run from cron).

From the examples given in the wiki page, the expire plugin presents the
same problem: one must know in advance the *name of the mailbox* he has
to empty.

Also for the correct search criteria: should I use SAVEDBEFORE or
SENTBEFORE ?


Thanks again,
Răzvan








attachment: razvan_sandu.vcf

Re: [Dovecot] Please HELP: how to delete all messages older than X days from the server?

2013-08-07 Thread Timo Sirainen
On 7.8.2013, at 11.22, Răzvan Sandu razvan.sa...@mobexpert.ro wrote:

 On Tue, 06 Aug 2013 19:18:15 +0200, Pascal Volk a scris:
 
 There is also the -A option, see
 http://wiki2.dovecot.org/Tools/Doveadm/Expunge#section_options
 
 
 Thank you, but doveadm expunge will ask for the mailbox name:
 
 [root@mail1 ~]# doveadm expunge -u john@example.com ON 2013-08-07
 doveadm(root): Fatal: expunge: To avoid accidents, search query must
 contain MAILBOX in all search branches

Add: mailbox '*'

 Also for the correct search criteria: should I use SAVEDBEFORE or
 SENTBEFORE ?

If they are POP3 only, then SAVEDBEFORE and BEFORE and the same. SENTBEFORE 
usually is also almost the same, except if the mail has been stuck in queues 
for a while or if the sender's clock is wrong. So better not use it.



[Dovecot] Please HELP: how to delete all messages older than X days from the server?

2013-08-06 Thread Răzvan Sandu

Hello,


Would you please help me solve the following case?

My (CentOS) server runs dovecot and allows both POP3 and IMAP service.
Users are virtual users (no home directories), with messages stored in 
Maildir directories under /var/spool/mail/vhosts/example.com/username


Some of them use mobile devices (without local storage space), so I must 
allow IMAP access, not just POP3. But the storage on the server must be 
for a strictly *limited* period of time.


As an admin, I'm trying to force each user to:

- download *locally* received messages when they arrive at the office
- don't let copies of messages on the server (incoming, sent, trash, 
drafts, etc.)


For various reasons, e-mail client configuration is not under my control 
(I can't rely on client configuration for implementing this).


Implementing filesystem quotas is not an option because a. presently, 
all virtual users share same UID/GID on the server and b. administrative 
reasons (the full quota situation may occur unexpectedly and this is 
not tolerable in corporate policy).



So I need EITHER:

1. a method of downloading locally *all* messages from the server 
(incoming, sent, trash, drafts, etc.) to the workstation, when the user 
consults his/her mailbox from a POP3 desktop client, thus completely 
*emptying* the user's mailbox on the server


OR

2. an automatic, elegant but forceful method of deleting all messages 
older than X days (incoming, sent, trash, drafts, etc.)



I've tried to use a line such as:

doveadm expunge -u john@example.com before 4w

run as root, from a script in crontab, but for expunge doveadm won't 
let me skip the -u parameter (to perform the expunge for *all* users).



Could you please help? Any sugestion is welcomed.


Thanks a lot,
Răzvan
attachment: razvan_sandu.vcf

Re: [Dovecot] Please HELP: how to delete all messages older than X days from the server?

2013-08-06 Thread Pascal Volk
On 08/06/2013 06:31 PM Răzvan Sandu wrote:
 …
 Implementing filesystem quotas is not an option because a. presently, 
 all virtual users share same UID/GID on the server and b. administrative 
 reasons (the full quota situation may occur unexpectedly and this is 
 not tolerable in corporate policy).

Use Dovecot's quota plugin - which supports different backends. Each
user may have a different quota limit.

* http://wiki2.dovecot.org/Quota

 So I need EITHER:
 
 1. a method of downloading locally *all* messages from the server 
 (incoming, sent, trash, drafts, etc.) to the workstation, when the user 
 consults his/her mailbox from a POP3 desktop client, thus completely 
 *emptying* the user's mailbox on the server

Usually only the INBOX is visible via POP3 …

 OR
 
 2. an automatic, elegant but forceful method of deleting all messages 
 older than X days (incoming, sent, trash, drafts, etc.)

There is the expire plugin for Dovecot.

* http://wiki2.dovecot.org/Plugins/Expire


 I've tried to use a line such as:
 
 doveadm expunge -u john@example.com before 4w
 
 run as root, from a script in crontab, but for expunge doveadm won't 
 let me skip the -u parameter (to perform the expunge for *all* users).
 
 
 Could you please help? Any sugestion is welcomed.

There is also the -A option, see
http://wiki2.dovecot.org/Tools/Doveadm/Expunge#section_options


Regards,
Pascal
-- 
The trapper recommends today: cafebabe.1321...@localdomain.org