我有一个邮件服务器与Postfix,Dovecot, saslauthd和一个MySQL存储和身份validation后端。 我可以发送电子邮件,但是在这种情况下,接收电子邮件(在这种情况下,来自Outlook)会失败,并在/var/log/mysql/mysql.log显示消息:
MySQL日志显示了这些错误:
53 Connect mail@localhost on mail 53 Connect Access denied for user 'mail'@'localhost' (using password: YES) 54 Connect mail@localhost on mail 54 Connect Access denied for user 'mail'@'localhost' (using password: YES) 55 Connect mail@localhost on mail 55 Connect Access denied for user 'mail'@'localhost' (using password: YES) 56 Connect mail@localhost on mail 56 Connect Access denied for user 'mail'@'localhost' (using password: YES)
看来我无法login到MySQL服务器, 但是 ,当我这样做
mysql -u mail -p -h localhost
我可以正常login。 在这两种情况下,密码都是正确的。
我有一种感觉,这是由Postfix(和后来的SMTPD,我认为?)在/var/spool/postfix中的chroot监狱运行。 我试过禁用chroot并将mysql.sock挂载到Postfic chroot中的文件夹,但是没有任何变化。
我也试着将127.0.0.1实例更改为localhost ,反之亦然无济于事。 我试图寻找解决scheme,谷歌已经枯竭了。 也许我正在寻找错误的东西。
我需要做些什么来允许Postfix访问运行在同一台服务器上的MySQL数据库? 我想用PHP来做其他的事情,所以Postfix独占的解决scheme并不是真正的select。 这一直困扰着我好三天了,我已经尝试了所有的解决scheme。
我的/etc/postfix/sasl/smtpd.conf看起来像这样:
pwcheck_method: auxprop mech_list: PLAIN LOGIN log_level: 7 allow_plaintext: true auxprop_plugin: sql sql_engine: mysql sql_hostnames: localhost sql_user: mail sql_passwd: [hidden] sql_database: mail sql_select: select password from mailbox where username='%u@%r' and active = 1
我不确定要发布的其他文件,所以请评论,我会相应地更新。 我正在运行的Ubuntu服务器12.10 32位。
这是我完全愚蠢的错误。 事实certificate,在configuration文件/etc/postfix/sasl/smtpd.conf , sql_passwd和其他字段之后有一个空格,表示auth失败。 哦,狗,我觉得很愚蠢。