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 = [email protected]
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!!! :)