I'm having problems with dovecot quota configuration. If I Include the driver mysql in dovecot-sql.conf I'm getting this error: dovecot: dict: Error in configuration file /etc/dovecot/dovecot-sql.conf line 1: Unknown setting: driver dovecot: dict: Failed to initialize dictionary 'quotadict'
If I Don't include it: dovecot: auth(default): Fatal: sql: driver not set in configuration file /etc/dovecot/dovecot-sql.conf dovecot: auth(default): Fatal: sql: driver not set in configuration file /etc/dovecot/dovecot-sql.conf
Now What??? How Should I configure quota ?
My SQL has a mail db with a user table. The table has email, password, quota_kb fields.
my dovecot.conf:
protocols = imap imaps pop3 pop3s log_timestamp = "%Y-%m-%d %H:%M:%S " mail_location = maildir:/home/vmail/%d/%n/Maildir disable_plaintext_auth = no ssl_cert_file = /etc/ssl/certs/dovecot.pem ssl_key_file = /etc/ssl/private/dovecot.pem namespace private { separator = . prefix = INBOX. inbox = yes } protocol imap { mail_plugins = quota imap_quota } protocol lda { log_path = /home/vmail/dovecot-deliver.log auth_socket_path = /var/run/dovecot/auth-master postmaster_address = postmaster@domain.tld mail_plugins = sieve quota global_script_path = /home/vmail/globalsieverc mail_plugin_dir = /usr/lib/dovecot/modules/lda } protocol pop3 { pop3_uidl_format = %08Xu%08Xv mail_plugins = quota } dict { quotadict = mysql:/etc/dovecot/dovecot-sql.conf } plugin { quota = dict:user::proxy::quotadict quota_rule = *:storage=10M:messages=1000 } auth default { user = root passdb sql { args = /etc/dovecot/dovecot-sql.conf } userdb sql { args = /etc/dovecot/dovecot-sql.conf } socket listen { master { path = /var/run/dovecot/auth-master mode = 0600 user = vmail } client { path = /var/spool/postfix/private/auth mode = 0660 user = postfix group = postfix } } } mail_uid = 5000 mail_gid = 5000
my dovecot-sql.conf:
driver = mysql connect = host=127.0.0.1 dbname=mail user=****** password=****** default_pass_scheme = CRYPT password_query = SELECT email as user, password, concat('*:storage=', quota_kb) AS quota_rule FROM users WHERE email='%u';
user_query = SELECT CONCAT('/home/vmail/',CONCAT(SUBSTRING_INDEX(email,'@',-1),'/',SUBSTRING_INDEX(email,'@',1))) AS home, 5000 AS uid, 5000 AS gid, concat('*:storage=', quota_kb) AS quota_rule FROM users WHERE email='%u'
map { pattern = priv/quota/storage table = user username_field = user value_field = quota_kb }
SOMEBODY PLEASE HELP ME!!! :)