Re: [Dovecot] I need a quota expert
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!!! :)
Looking at the wiki: http://wiki2.dovecot.org/Quota/Dict
It appears that the conf files for dict are different than the sql files for auth. This is why you are getting error messages. The auth config needs the driver option, the dict config does not. Create a file specifically for dict and point to that. Use the above wiki's examples for format.
Jack
On 10/10/2012 9:29 AM, Tibby wrote:
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!!! :)
participants (2)
-
Jack Bates
-
Tibby