[Dovecot] quota percents

Micah Anderson micah at riseup.net
Mon Sep 12 19:17:09 EEST 2011


Timo Sirainen <tss at 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 at 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 = </etc/certs/wildcard/cert.pem
ssl_cipher_list = HIGH:-ADH:-aNULL
ssl_key = </etc/certs/wildcard/key.pem
userdb {
  args = /etc/dovecot/dovecot-sql.conf
  driver = sql
}
verbose_proctitle = yes
protocol imap {
  imap_client_workarounds = delay-newmail tb-extra-mailbox-sep
  mail_plugins = expire
}
protocol pop3 {
  pop3_client_workarounds = outlook-no-nuls oe-ns-eoh
  pop3_uidl_format = %g
}




More information about the dovecot mailing list