[Dovecot] Quota + MySQL

Matt Rude lists at mattrude.com
Tue Feb 5 04:09:17 EET 2008


Hello, Im having problems getting Dovecot to read the quota info from 
MySQL.  My current dovecot.conf file is below.

If I run the user_query of:

user_query = SELECT 1000 AS uid, 1000 AS gid, maildir AS home FROM 
mailbox WHERE username = '%u' AND active = '1'

Everything works fine but if I run the user_query of:

user_query = SELECT 1000 AS uid, 1000 AS gid, maildir AS home, 
concat('quota=maildir:storage=', floor( mailbox.quota / 1024 )) AS quota 
FROM mailbox WHERE username = '$u' AND active = '1'

if I were to run the query from MySQL the I get:

+------+------+----------------------------------+------------------------------+
| uid  | gid  | home                             | quota 
         |
+------+------+----------------------------------+------------------------------+
| 1000 | 1000 | mattrude.com/lists at mattrude.com/ | 
quota=maildir:storage=512000 |
+------+------+----------------------------------+------------------------------+

If I run the above query I am unable to log into the server:

Feb  4 20:06:11  dovecot: imap-login: Internal login failure: 
user=<lists at mattrude.com mythtv at mattrude.com 
From=akstcaloprestimnsdgs at alopresti.com  File=/tmp/clamav/virus.7Q
 >, method=PLAIN, rip=192.168.1.10, lip=192.168.1.1, TLS


## Dovecot configuration file
#protocols = imap imaps pop3 pop3s
protocols = imap imaps
login_user = postfix
listen =
ssl_listen =
ssl_disable = no
ssl_cert_file = /etc/pki/dovecot/certs/dovecot.pem
ssl_key_file = /etc/pki/dovecot/private/dovecot.pem
auth_cache_size = 128
auth_cache_ttl = 600

mail_location = 
maildir:/var/spool/virtualmailboxes/%d/%u/imap/:INBOX=/var/spool/virtualmailboxes/%d/%u/:INDEX=/var/spool/virtualmailboxes/%d/%u/imap/index/

protocol imap {
mail_plugins = quota imap_quota
}

protocol pop3 {
mail_plugins = quota
}

protocol lda {
   postmaster_address = postmaster at mattrude.com
   hostname = samantha.mattrude.com
   mail_plugins = cmusieve
   mail_plugins = quota
   sieve_global_path = /var/spool/sieve/dovecot.sieve
   mail_plugin_dir = /usr/lib/dovecot/lda
   auth_socket_path = /var/run/dovecot/auth-master
}

auth default {
   mechanisms = plain digest-md5 cram-md5

   userdb sql {
     args = /etc/dovecot-mysql.conf
   }
   passdb sql {
     args = /etc/dovecot-mysql.conf
   }
   user = root
   count = 2
}

dict {
}

plugin sql {
   quota = maildir:storage=1048576
   quota = maildir:ignore=Trash
}


If anyone sees what im missing please let me know

Thanks
-Matt


More information about the dovecot mailing list