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