[Dovecot] trash plugin not doing it's job
I enabled the trash plugin yesterday, adding "trash" to mail_plugins, and configuring the plugin setting "trash = /etc/dovecot/dovecot-trash.conf.ext".
But I still see users with lots of files in INBOX.Trash getting bounced because of quota exceeded:
postfix/lmtp[26273]:: C89F490061: to=XXXXXXXXXXXXX@example.no, relay=loadbalancers.example.net[192.168.42.15]:24, delay=1.2, delays=0.61/0.02/0/0.54, dsn=5.2.2, status=bounced (host loadbalancers.example.net[192.168.42.15] said: 552 5.2.2 XXXXXXXXXXXXd@example.no Quota exceeded (mailbox for user is full) (in reply to end of DATA command))
dovecot:: lmtp(19730, XXXXXXX@example.no): Error: BErxFCyrf1ASTQAAWNPRnw: sieve: msgid=e33d481dc9d9442fa79f55e45a516c82@BizWizard: failed to store into mailbox 'INBOX': Quota exceeded (mailbox for user is full)
$ sudo doveadm quota get -u XXXXXXXX@example.no Quota name Type Value Limit % UserQuota STORAGE 1048559 1048576 99 UserQuota MESSAGE 4487 - 0
Postfix if delivering via LMTP trough dovecot director.
Anybody see anything obvious in my config:
# 2.0.14: /etc/dovecot/dovecot.conf # OS: Linux 2.6.18-194.26.1.el5 x86_64 Red Hat Enterprise Linux Server release 5.5 (Tikanga) auth_cache_size = 100 M auth_verbose = yes auth_verbose_passwords = sha1 disable_plaintext_auth = no login_trusted_networks = 192.168.0.0/16 109.247.114.192/27 mail_gid = 3000 mail_home = /srv/mailstore/%256LRHu/%Ld/%Ln mail_location = maildir:~/:INDEX=/indexes/%1u/%1.1u/%u mail_max_userip_connections = 20 c = quota zlib trash mail_uid = 3000 maildir_stat_dirs = yes maildir_very_dirty_syncs = yes managesieve_notify_capability = mailto managesieve_sieve_capability = fileinto reject envelope encoded-character vacation subaddress comparator-i;ascii-numeric relational regex imap4flags copy include variables body enotify environment mailbox date mmap_disable = yes namespace { inbox = yes location = prefix = INBOX. separator = . type = private } passdb { args = /etc/dovecot/dovecot-ldap.conf.ext driver = ldap } plugin { quota = dict:UserQuota::file:%h/dovecot-quota sieve = /sieve/%1Lu/%1.1Lu/%Lu/.dovecot.sieve sieve_before = /etc/dovecot/sieve/dovecot.sieve sieve_dir = /sieve/%1Lu/%1.1Lu/%Lu sieve_max_script_size = 1M trash = /etc/dovecot/dovecot-trash.conf.ext zlib_save = gz zlib_save_level = 6 } postmaster_address = postmaster@example.net protocols = imap pop3 lmtp sieve service auth-worker { user = $default_internal_user } service auth { client_limit = 4521 unix_listener auth-userdb { group = mode = 0600 user = atmail } } service imap-login { inet_listener imap { address = * port = 143 } process_min_avail = 4 service_count = 0 vsz_limit = 1 G } service imap-postlogin { executable = script-login /usr/local/sbin/imap-postlogin.sh } service imap { executable = imap imap-postlogin process_limit = 2048 } service lmtp { client_limit = 1 inet_listener lmtp { address = * port = 24 } process_limit = 25 process_min_avail = 10 } service managesieve-login { inet_listener sieve { address = * port = 4190 } service_count = 1 } service pop3-login { inet_listener pop3 { address = * port = 110 } process_min_avail = 4 service_count = 0 vsz_limit = 1 G } service pop3-postlogin { executable = script-login /usr/local/sbin/pop3-postlogin.sh } service pop3 { executable = pop3 pop3-postlogin process_limit = 2048 } ssl = no userdb { args = /etc/dovecot/dovecot-ldap.conf.ext driver = ldap } protocol lmtp { mail_plugins = quota zlib trash sieve } protocol imap { imap_client_workarounds = delay-newmail mail_plugins = quota zlib trash imap_quota } protocol pop3 { mail_plugins = quota zlib trash pop3_client_workarounds = outlook-no-nuls oe-ns-eoh pop3_uidl_format = UID%u-%v } protocol sieve { managesieve_logout_format = bytes=%i/%o }
and my trash config:
$ cat /etc/dovecot/dovecot-trash.conf.ext # Spam mailbox is emptied before Trash 1 INBOX.Spam # Trash mailbox is emptied before Sent 2 INBOX.Trash
Global sieve script:
$ cat /etc/dovecot/sieve/dovecot.sieve
require ["comparator-i;ascii-numeric","relational","fileinto","mailbox"]; if allof ( not header :matches "x-spam-score" "-*", header :value "ge" :comparator "i;ascii-numeric" "x-spam-score" "10" ) { discard; stop; } elsif allof ( not header :matches "x-spam-score" "-*", header :value "ge" :comparator "i;ascii-numeric" "x-spam-score" "6" ) { fileinto :create "INBOX.Spam"; }
-jf
Jan-Frode Myklebust wrote:
$ cat /etc/dovecot/dovecot-trash.conf.ext # Spam mailbox is emptied before Trash 1 INBOX.Spam # Trash mailbox is emptied before Sent 2 INBOX.Trash
Are you sure the Trash Folder of the affected users is located below "INBOX"? doveadm mailbox list -u user@domain | grep -iE "trash|spam"
Example at http://wiki2.dovecot.org/Plugins/Trash omits "INBOX." Have you tried INBOX/Trash as mailbox name?
Regards Daniel
On Sat, Oct 20, 2012 at 3:51 PM, Daniel Parthey daniel.parthey@informatik.tu-chemnitz.de wrote:
Jan-Frode Myklebust wrote:
$ cat /etc/dovecot/dovecot-trash.conf.ext # Spam mailbox is emptied before Trash 1 INBOX.Spam # Trash mailbox is emptied before Sent 2 INBOX.Trash
Are you sure the Trash Folder of the affected users is located below "INBOX"? doveadm mailbox list -u user@domain | grep -iE "trash|spam"
$ sudo doveadm mailbox list -u XXXXX@example.no INBOX INBOX.Drafts INBOX.Sent INBOX.Spam INBOX.Trash
Example at http://wiki2.dovecot.org/Plugins/Trash omits "INBOX." Have you tried INBOX/Trash as mailbox name?
No, should I, when my prefix is "INBOX." and separator is "." ?
namespace { hidden = no inbox = yes list = yes location = prefix = INBOX. separator = . subscriptions = yes type = private }
BTW: I think it's mostly working.. as the number or quota exceeded messages has clearly dropped since implementing it, but I do find a few users that get quota exceeded and has lots of messages in INBOX.Trash og INBOX.Spam..
-jf
On 18.10.2012, at 11.05, Jan-Frode Myklebust wrote:
I enabled the trash plugin yesterday, adding "trash" to mail_plugins, and configuring the plugin setting "trash = /etc/dovecot/dovecot-trash.conf.ext".
But I still see users with lots of files in INBOX.Trash getting bounced because of quota exceeded: .. # 2.0.14: /etc/dovecot/dovecot.conf
There are several fixes to Trash plugin in v2.1. I think it's simply somewhat broken in v2.0.
participants (3)
-
Daniel Parthey
-
Jan-Frode Myklebust
-
Timo Sirainen