[Dovecot] current quota in mysql issue

stefan at webetc.de stefan at webetc.de
Sun Mar 16 20:36:11 EET 2008


ok, i will answer my question by myself:

from the dovecot wiki:
"You can configure quota globally by placing the settings in plugin
section in dovecot.conf and you can give per-user limits by having your
userdb return the quota setting as an extra field. The userdb quota
setting always overrides the global plugin setting."

stefan


> hi all,
>
> i have a problem with storing the current quota in mysql. the
> configuration of the dictionary quota mostly looks like the example from
> the wiki.
> the dirsize quota limit is read correctly from the user_query, but nothing
> stored with quotadict in the quota table. i wonder that there is nothing
> like a "dict" in the logfile. did i configured anything wrong?
>
> regars
> stefan
>
>
> logfile from a imap login:
> Mar 15 14:12:18 mx01 dovecot: IMAP(me at mydomain.de): Effective uid=150,
> gid=8
> Mar 15 14:12:18 mx01 dovecot: IMAP(me at mydomain.de): Loading modules from
> directory: /usr/lib/dovecot/modules/imap
> Mar 15 14:12:18 mx01 dovecot: IMAP(me at mydomain.de): Module loaded:
> /usr/lib/dovecot/modules/imap/lib01_quota_plugin.so
> Mar 15 14:12:18 mx01 dovecot: IMAP(me at mydomain.de): Module loaded:
> /usr/lib/dovecot/modules/imap/lib02_imap_quota_plugin.so
> Mar 15 14:12:18 mx01 dovecot: IMAP(me at mydomain.de): Namespace:
> type=private, prefix=, sep=/, inbox=yes, hidden=no, subscriptions=no
> Mar 15 14:12:18 mx01 dovecot: IMAP(me at mydomain.de): maildir:
> data=/var/vmail/mydomain.de/me/Maildir
> Mar 15 14:12:18 mx01 dovecot: IMAP(me at mydomain.de): maildir:
> root=/var/vmail/mydomain.de/me/Maildir,
> index=/var/vmail/mydomain.de/me/Maildir, control=, inbox=
> Mar 15 14:12:18 mx01 dovecot: IMAP(me at mydomain.de): dirsize quota limit =
> 20000000kB
> Mar 15 14:12:18 mx01 dovecot: imap-login: Login: user=<me at mydomain.de>,
> method=PLAIN, rip=10.1.1.147, lip=10.1.1.146
>
>
> here is my current config:
>
> package from debian etch (1.0.rc15)
>
> ###
> # file dovecot.conf
> disable_plaintext_auth = no
> base_dir = /var/run/dovecot/
> protocols = imap imaps pop3 pop3s
> protocol imap {
>   listen = mx01.int.example.net:143
>   ssl_listen = mx01.int.example.net:993
> }
> protocol pop3 {
>   listen = mx01.int.example.net:110
>   ssl_listen = mx01.int.example.net:995
> }
> log_timestamp = .%Y-%m-%d %H:%M:%S .
> syslog_facility = mail
> ssl_cert_file = /etc/ssl/example.net/mailserver/mail-cert.pem
> ssl_key_file = /etc/ssl/example.net/mailserver/mail-key.pem
> ssl_ca_file = /etc/ssl/example.net/mailserver/ca.pem
> ssl_parameters_regenerate = 168
> verbose_ssl = no
> mail_extra_groups = mail
> mail_debug = yes
> auth_verbose = no
> auth_debug = no
> auth_debug_passwords = no
> first_valid_uid = 150
> last_valid_uid = 150
> first_valid_gid = 8
> last_valid_gid = 8
> maildir_copy_with_hardlinks = yes
> protocol imap {
>   login_executable = /usr/lib/dovecot/imap-login
>   mail_executable = /usr/lib/dovecot/imap
>   imap_client_workarounds = outlook-idle
>   imap_max_line_length = 65536
>   mail_plugins = quota imap_quota
> }
> protocol pop3 {
>   login_executable = /usr/lib/dovecot/pop3-login
>   mail_executable = /usr/lib/dovecot/pop3
>   mail_plugins = quota
> }
> protocol lda {
>   postmaster_address = postmaster at mydomain.com
>   sendmail_path = /usr/lib/sendmail
>   auth_socket_path = /var/run/dovecot/auth-master
>   mail_plugins = cmusieve quota
> }
> auth_username_translation = %Lu
> auth default {
>   mechanisms = plain
>     passdb sql {
>       args = /etc/dovecot/dovecot-sql.conf
>     }
>     userdb sql {
>       args = /etc/dovecot/dovecot-sql.conf
>     }
>     user = nobody
>     socket listen {
>     master {
>       path = /var/run/dovecot/auth-master
>       mode = 0660
>       user = vmail
>       group = mail
>     }
>     client {
>       path = /var/spool/postfix/private/auth
>       mode = 0660
>       user = postfix
>       group = postfix
>     }
>   }
> }
> namespace private {
>   separator = /
>   prefix =
>   inbox = yes
>  }
> plugin {
>   quota = dict::: proxy::quotadict
> }
> dict {
>   quotadict = mysql:/etc/dovecot/dovecot-sql-quota-dict.conf
> }
>
> ###
> # file dovecot-sql.conf
> driver = mysql
> connect = host=mx01.int.example.net dbname=db_mail user=dovecot
> password=********
> default_pass_scheme = PLAIN
> user_query = select concat('/var/vmail/%d/%n/Maildir') as home,
> concat('maildir:/var/vmail/%d/%n/Maildir') as mail, 150 as uid, 8 as gid,
> quota from qry_dovecot where user = '%u'
> password_query = select user, password, concat('/var/vmail/%d/%n') as
> userdb_home, concat('maildir:/var/vmail/%d/%n') as userdb_mail, 150 as
> userdb_uid, 8 as userdb_gid from qry_dovecot where user = '%u'
>
> ###
> # file dovecot-sql-quota-dict.conf
> connect = host=db01.int.example.net dbname=db_mail user=quota
> password==********
> table = quota
> select_field = current
> where_field = path
> username_field = username
>
> (don't wonder about the different database hosts. mx01 is a readonly slave
> from db01)
>
>
>
>
>
>




More information about the dovecot mailing list