在将 Ubuntu dist 从 10.04 升级到 12.04 后,我的虚拟用户 postfix / dovecot 安装仅提供“PLAIN”SMTP 身份验证机制。
它曾经提供 PLAIN + LOGIN 机制,我已经尝试了所有方法来重新获得 LOGIN,但它就是做不到。
如果没有“LOGIN”版本,许多基于 MS 的客户端(windows live、outlook express)将无法再使用 SMTP Auth 发送邮件。我不得不将他们的 IP 地址放入我的“我的网络”列表中。
我什至尝试使用 12.04.1 从头开始设置 postfix+dovecot+虚拟用户 smtp 服务器,认为它必须与升级有关,但除了 AUTH PLAIN 之外什么也得不到新系统也行。
有没有人在 12.04 上成功地设置了一个工作的 postfix + dovecot + 虚拟用户邮件服务器,它正确地执行了 SMTP 身份验证?
我当前的鸽舍配置: http: //pastie.org/5651874
和当前的后缀配置: http: //pastie.org/5651882
.
仅供参考,这是我尝试过的配置的摘录:
(一个):
/etc/dovecot/conf.d/10-auth.conf:
auth_mechanisms = plain login
/etc/dovecot/conf.d/10-master.conf:
service auth {
unix_listener auth-userdb {
}
inet_listener {
port = 12345
}
}
/etc/postfix/main.cf
smtpd_sasl_auth_enable = yes
smtpd_sasl_exceptions_networks = $mynetworks
smtpd_sasl_security_options = noanonymous
smtpd_sasl_type = dovecot
smtpd_sasl_path = inet:127.0.0.1:12345
结果是
... warning: SASL: Connect to inet:127.0.0.1:12345 failed: Connection refused
... fatal: no SASL authentication mechanisms
从我的日志。
.
.
和(乙):
/etc/dovecot/conf.d/10-auth.conf:
auth_mechanisms = plain login
/etc/dovecot/conf.d/10-master.conf:
service auth {
unix_listener auth-userdb {
}
unix_listener /var/spool/postfix/private/auth {
mode = 0666
user = postfix
group = postfix
}
}
/etc/postfix/main.cf
smtpd_sasl_auth_enable = yes
smtpd_sasl_exceptions_networks = $mynetworks
smtpd_sasl_security_options = noanonymous
smtpd_sasl_type = dovecot
smtpd_sasl_path = private/auth
结果仅提供 PLAIN 机制。
.
adaptr 在他的回答中引用的文档没有任何 Dovecot 2 的 UNIX 套接字样式配置示例,因此我希望有更多经验的人可以在这里指导我。
如文档所述,dovecot 必须宣传适当的机制。
好吧,从我在您发布的配置中看到的情况来看,您从未设置 Dovecot's
auth_mechanisms = plain login
,因此使用了默认值auth_mechanisms = plain
。尝试更新该设置并重新启动 Dovecot,然后重新检查doveconf -n
.你的 auth 套接字设置对我来说似乎是正确的,Postfix 应该能够对 Dovecot 进行 SASL 身份验证。
我在 CentOS 6 上遇到了同样的问题,我的问题的原因是不同的:
有设置:
在 main.cf 中剥离
来自 telnet 会话期间的 EHLO 输出。将其放入 master.cf 中可恢复输出和预期行为:
我觉得分享这个解决方案是值得的,因为我在网上找到的至少三个教程建议在 main.cf 中包含这个设置是可以的。