Timo Sirainen tss@iki.fi writes:
On Fri, 2011-09-09 at 16:05 -0400, Micah Anderson wrote:
its incorrect because if you change it to what it suggests ('+10%') it wont work because that wont be 10% more, rather, it is set to bytes=+10:
Well, that's a more complex problem. The %% escaping needs to be done in dovecot.conf, but it doesn't need to be done elsewhere. If this said that "use +10%%" and someone gives that in SQL user_query, it will break. So I'm not changing the warning.
Ok, that makes sense.
However, it doesn't seem to work in practice, because I have a user that is at 99% of quota, with nothing in the Trash who cannot move a 77KB message into the Trash without getting the quota_exceeded message and refusing to move it.
dovecot -n output?
NOTE: i turned off the quota plugins while this is sorted, so you wont see them enabled below.
# 2.0.13: /etc/dovecot/dovecot.conf # OS: Linux 2.6.32-5-amd64 x86_64 Debian 6.0.2 auth_default_realm = example.net auth_verbose = yes default_process_limit = 256 default_vsz_limit = 512 M dict { expire = mysql:/etc/dovecot/dovecot-dict-sql.conf quota = mysql:/etc/dovecot/dovecot-dict-sql.conf } disable_plaintext_auth = no first_valid_gid = 8 first_valid_uid = 8 last_valid_gid = 8 last_valid_uid = 8 listen = * login_greeting = howdy, ready. mail_location = mdbox:~/mdbox mail_plugins = expire maildir_very_dirty_syncs = yes namespace { inbox = yes location = prefix = separator = . } namespace { hidden = yes inbox = no list = no location = prefix = INBOX. separator = . } passdb { args = /etc/dovecot/dovecot-sql.conf driver = sql } plugin { expire = Trash expire2 = Trash/* expire3 = Spam expire_dict = proxy::expire quota = dict:Your mail quota::proxy::quota quota_exceeded_message = You are over quota. To avoid losing mail, immediately empty your Trash and Sent folders and delete emails with large attachments. quota_rule = *:bytes=24117248 quota_rule2 = Trash:bytes=+50%% quota_rule3 = Spam:bytes=+20%% } postmaster_address = postmaster@example.net protocols = imap pop3 service dict { unix_listener dict { group = mail mode = 0600 user = mail } } service imap-login { process_min_avail = 10 service_count = 0 vsz_limit = 512 M } service imap-postlogin { executable = script-login /maildir/postlogin_imap user = $default_internal_user } service pop3-postlogin { executable = script-login /maildir/postlogin_pop user = $default_internal_user } ssl_cert =