Il 08/11/2012 18:53, Matt Rauch ha scritto:
-----Original Message-----
From: Matt Rauch [mailto:[email protected]]
Sent: November-08-12 11:57 AM
To: [email protected]
Subject: RE: [qmailadmin] [SPAM] Auto-empty trash items older
then a certain age

Il 08/11/2012 17:15, Matt Rauch ha scritto:
The best way to do this is to run:

doveadm expunge -A mailbox Trash savedbefore 30d (if you
use dovecot
with MySQL for auth)

or

doveadm expunge -u [email protected] mailbox Trash
savedbefore 30d (if
you use dovecot with vpopmail auth)

Any other script, like "find -exec rm", will break user's
quota since
is not updating maildirsize file.

Form more information see

http://wiki2.dovecot.org/Tools/Doveadm/Expunge
and
http://wiki2.dovecot.org/Plugins/Expire

Ciao

        Ok so I tested this method with search instead of
expunge to see what
would hit. if I try the first command (doveadm expunge -A mailbox
Trash savedbefore 30d), I get an error message:

# doveadm search -A mailbox Trash savedbefore 30d
doveadm(mattr): Error: User listing returned failure
doveadm: Error: Failed to iterate through some users

If I use the second option (doveadm expunge -u
[email protected] mailbox
Trash savedbefore 30d) it works, but I have to specify the
username for each user.
Is there a way to do it so that it affects all users?
(which I thought
the -A would do).
The -A need dovecot auth with mysql like this:

## vpopmail
##
# Query to get a list of all usernames.
iterate_query = SELECT CONCAT(pw_name, '@', pw_domain) AS user FROM
vpopmail # driver = mysql connect = host=localhost dbname=vpopmail
user=vpopmail password=mypwd default_pass_scheme = MD5-CRYPT

user_query = SELECT pw_dir as home, 89 AS uid, 89 AS gid,
concat('*:backend=', pw_shell) as quota_rule FROM vpopmail WHERE
pw_name = '%n' AND pw_domain = '%d'

password_query = SELECT CONCAT(pw_name, '@', pw_domain) AS user,
pw_passwd AS password, concat('*:backend=', pw_shell) as
userdb_quota_rule FROM vpopmail WHERE pw_name = '%n' AND
pw_domain =
'%d'

What kind of dovecot authentication are you using?
I'm not entirely sure to be honest with you. Are you able to
tell from the output of dovecot -n?

imap# dovecot -n
# 2.0.9: /usr/local/etc/dovecot/dovecot.conf
# OS: FreeBSD 6.0-RELEASE-p5 i386
auth_mechanisms = plain login cram-md5
auth_verbose = yes
base_dir = /var/run/dovecot/
default_client_limit = 1005
default_login_user = dovecot
default_process_limit = 500
disable_plaintext_auth = no
dotlock_use_excl = yes
first_valid_uid = 89
last_valid_uid = 89
log_path = /dev/stderr
log_timestamp =
passdb {
   args = webmail=127.0.0.1
   driver = vpopmail
}
plugin {
   quota = maildir
}
protocols = imap
service auth {
   user = root
}
ssl_cert = </var/qmail/control/servercert.pem
ssl_key = </var/qmail/control/servercert.pem
userdb {
   args = quota_template=quota_rule=*:backend=%q
   driver = vpopmail
}
verbose_proctitle = yes

Matt

Did some more digging and it looks like I can't use the -A flag if the
userdb is vpopmail. I would have to bypass and use the sql directly. Not
sure how I feel about that on a live mail server right now.


With userdb in vpopmail you can't use -A

At this page http://wiki2.dovecot.org/Plugins/Expire you can find a trick for do it:

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

Ciao

--
Alessio Cecchi is:
@ ILS -> http://www.linux.it/~alessice/
on LinkedIn -> http://www.linkedin.com/in/alessice
Assistenza Sistemi GNU/Linux -> http://www.cecchi.biz/
@ PLUG -> ex-Presidente, adesso senatore a vita, http://www.prato.linux.it


!DSPAM:509c8c4c33996121420632!

Reply via email to