[Dovecot] Dovecot quota dict

Nikita Koshikov koshikov at gmail.com
Tue Aug 9 09:29:38 EEST 2011


On Mon, 08 Aug 2011 16:35:53 -0300
Juan Bernhard wrote:

> Hi, Im using dovecot with maildir++ quota and I have this problem, maybe 
> some of you already solve this and can helpme.
> I want to use some flat file to tell exim and dovecot the quota limit 
> for each user, i tried to work with exim and maildirsize file, but exim 
> just ignores the limits there.
> I need a way (a really simple one, i dont want to create a database or 
> an ldap server just for this) to tell exim and dovecot to lookup some 
> file to get the quota limits. I know how to doit with exim, now i need 
> to know how to tell dovecot to read the quota limits from this file. I 
> know that dovecot can read the quota limit from the userdb, but im using 
> pam and i dont want to change the entire auth schema.
> Can I configure dovecot to get the quota limit from a file using pam as 
> userdb?
> 
> Thanks, Juan.
> 
> pd: here is my doveconf -n
> 
> # 2.0.13: /usr/local/etc/dovecot/dovecot.conf
> # OS: Linux 2.6.18-238.9.1.el5 x86_64 CentOS release 5.6 (Final) ext3
> auth_cache_size = 10 M
> auth_debug = yes
> auth_verbose = yes
> base_dir = /var/run/dovecot/
> default_client_limit = 5000
> default_process_limit = 1000
> disable_plaintext_auth = no
> listen = *
> login_greeting = Server ready.
> mail_debug = yes
> mail_location = maildir:/var/mail/%u:INDEX=~/
> mail_plugins = quota
> maildir_very_dirty_syncs = yes
> passdb {
>    args = failure_show_msg=yes %s
>    driver = pam
> }
> plugin {
>    mail_log_events = delete undelete expunge copy mailbox_delete 
> mailbox_rename
>    mail_log_fields = uid box msgid size subject
>    quota = maildir:Cuota de correo
>    quota_rule = *:storage=1G
>    quota_rule2 = Trash:storage=+100M
> }
> protocols = imap pop3
> service auth {
>    client_limit = 12000
> }
> service imap {
>    process_limit = 5000
> }
> service pop3 {
>    process_limit = 5000
> }
> ssl = no
> ssl_cert = </etc/ssl/certs/dovecot.pem
> ssl_key = </etc/ssl/private/dovecot.pem
> userdb {
>    driver = passwd
> }
> protocol imap {
>    imap_client_workarounds = tb-extra-mailbox-sep tb-lsub-flags
>    mail_plugins = quota imap_quota
> }
> protocol pop3 {
>    pop3_client_workarounds = outlook-no-nuls oe-ns-eoh
>    pop3_lock_session = yes
>    pop3_uidl_format = %08Xv%08Xu
> }
> 

Try to google "exim smtp-time quota bounce". This is what you need.
Exim can't do rcpt acl quota checks from the box, thus you need:
1)Some external script which will periodically create overquota file\database of users and reject them at smtp-time using lookup
2)Or write perl-script and exec it in router stage. Script will open maildirsize file, count quota and gives you 'yes\no'. 

Also you need to deliver via dovecot deliver. This scheme will work.



More information about the dovecot mailing list