我正在使用 Postfix 和 Dovecot 设置电子邮件服务器。远程电子邮件客户端可以阅读电子邮件,但无法回复或发送新消息。(服务器本地的电子邮件客户端可以很好地接收和发送电子邮件。)例如,Alpine 会尝试直到被告知放弃,当它说“发送错误:SMTP 问候失败 421 SMTP 连接消失”时。
当我运行 alpine -d 4 时,调试输出显示:
=== sending:
Sending mail...
call_mailer: via TCP
IMAP 11:34:01 9/14 mm_log babble: Try IP address [xx.xx.xxx.xxx]
IMAP DEBUG 11:34:02 9/14: * OK Dovecot ready
tcptimeout: waited 15 seconds
tcptimeout: waited 30 seconds
. . . .
对我来说,这表明服务器 b/w Dovecot 和 Postfix 存在问题。但我不知道如何诊断它。
服务器的系统日志显示成功的 imap 登录,但没有任何日志(远程或客户端)似乎包含有关发送消息失败的任何信息。
很有可能我在 Postfix 或 Dovecot 配置中搞砸了一些东西(SSL / TLS?SASL?)我想解决这个问题,而不必无休止地猜测。所以,请:调试这个的好过程是什么?
如何测试各种流程之间的交互,以便找到失败的流程?
有没有办法增加 Postfix 和 Dovecot 的调试/日志输出?
有没有办法模拟 Dovecot/Postix 交互和/或远程客户端/IMAP 服务器连接,所以我可以查看这些是否按要求进行?
谢谢。
我还建议这是一个后缀问题,输出是什么:
和
你确定你有一个 SMTP 邮件程序正在运行,即 telnet 到你的邮件服务器的 25 端口并得到响应吗?
首先,我将从将其分为两个问题开始。IMAP 由 Dovecot 处理。如果您能够从服务器接收消息,那么 Dovecot 就不是问题,它正在完成它的工作。
发送邮件是使用 Postfix 完成的。您说“服务器本地的邮件客户端可以正常接收和发送电子邮件”。- 这表明您的邮件客户端可能没有在端口 25 上对 Postfix 服务器进行身份验证,或者它没有在端口 25 上侦听您的外部接口。正如 Bart 提到的,尝试 telnet 到端口 25 并查看是否获得后缀横幅。如果这样做,请确保您的客户端正在验证(并且您已将 Postfix 设置为允许验证),以便他们可以通过您的服务器发送邮件。
您可以通过阅读相关的RFC (尤其是第 4 节)并假装自己是邮件客户端来假装自己是客户端。先关闭所有 SSL/TLS 配置,看看能否正常发送邮件。然后,打开它们并使用或连接到 SSL 端口。
telnet-ssl
openssl client
此外,您需要清楚本地或外部邮件传递是否存在问题。如果是本地交付,您需要检查这是如何完成的
postfix
。一种常见的方法是将本地邮件传递到管道,procmail
但也可以将其管道传输到dovecot
,您需要确保管道正常工作。检查日志。