On Jan 12, 2009, at 8:38 PM, Henry Yonathan wrote:
password_query = SELECT email AS user, password, CONCAT('/home/vmail/ %d/%n/', maildir) AS userdb_home, CONCAT('maildir:/home/vmail/%d/ %n/', maildir) AS userdb_mail, 5000 AS userdb_uid, 5000 AS userdb_gid FROM view_users WHERE email = '%u';
Here you're trying to use prefetch userdb by returning userdb_* fields. But they're different than here:
user_query = SELECT '/home/vmail/%d/%n' AS home, '/home/vmail/%d/%n/ Maildir' AS mail, 5000 AS uid, 5000 AS gid, CONCAT('maildir:storage=', ROUND(quota/1024)) AS quota FROM view_users WHERE email = '%u';
They should contain the exact same values. Here userdb_mail isn't prefixed with "maildir:", which is your main problem. Also here you're specifying "quota" field but in password_query you're not specifying userdb_quota at all.
passdb: driver: sql args: /etc/dovecot-sql.conf userdb: driver: sql args: /etc/dovecot-sql.conf
And finally you're not currently even using prefetch userdb so Dovecot ignores all the userdb_* fields you're returning in password_query. For enabling prefetch see http://wiki.dovecot.org/UserDatabase/Prefetch