Postfix MySQL Dovecot Roundcubeconfiguration

我正在build立一个邮件服务器,我希望得到一些帮助。 它开始与Roundcubenetworking邮件,当我试图用现有的正确的用户名和密码login,它给了我'login失败',所以我检查/var/log/mail.log错误日志,我发现有一个错误说的是

 dovecot: auth-worker(10370): Error: sql([email protected],127.0.0.1): Password query failed: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''maildir:/var/vmail/...' as userdb_mail, 150 as userd' at line 1 

当我检查在/etc/dovecot/dovecot-sql.conf.ext的密码查询

 password_query = \ SELECT username as user, password, '/var/vmail/%d/%n' as userdb_home, \ 'maildir:/var/vmail/%d/%n' as userdb_mail, 150 as userdb_uid, 8 as userdb_gid \ FROM mailbox WHERE username = '%u' AND active = '1' 

这似乎是正确的?

有人有想法吗?

用这样的SQL查询来更改你的configuration文件:

 . . . . . password_query= SELECT username as user, \ password \ FROM mailbox \ WHERE username = '%n@%d' \ AND active=1 user_query = SELECT maildir AS userdb_home, \ 150 AS userdb_uid, \ 8 AS userdb_gid, \ FROM mailbox \ WHERE username = '%n@%d' \ AND active=1 iterate_query = SELECT username AS user FROM mailbox . . . . . 

请记住,除了反斜杠之后允许的[ENTER]之外,没有任何字符。

将下一个块添加到postfixadminconfig.local.php中:

 . . . . . $CONF['maildir_name_hook'] = 'mdname'; function mdname ($domain, $user) { $part=explode("@", strtolower($user) ); return sprintf("/var/vmail/%s/%s/", $part[1], $part[0]); } . . . . .