如何debuggingIMAP问题?

我正在设置Postfix和Dovecot的电子邮件服务器。 远程电子邮件客户端可以阅读电子邮件,但不能回复或发送新邮件。 (服务器本地的电子邮件客户端收发电子邮件就好了。)例如,Alpine试图告诉放弃,当它说“发送错误:SMTP问题失败421 SMTP连接消失”。

当我运行alpine -d 4时,debugging输出显示:

=== 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 . . . . 

对我来说,这表明Dovecot和Postfix服务器上的问题。 但我无法弄清楚如何诊断。

服务器的系统日志显示成功的imap-login,但是没有一个日志(远程或客户端)似乎没有关于发送消息失败的任何信息。

赔率是非常好的,我搞砸了Postfix或Dovecotconfiguration(SSL / TLS?SASL?)的东西,我想麻烦 – 射击这个没有无休止的猜测。 所以,请:什么是一个好的过程来debugging呢?
我怎样才能testing各种过程之间的相互作用,所以我可以find一个失败的?
有没有办法增加Postfix和Dovecot的debugging/日志输出?
有没有一种方法来模拟Dovecot / Postix交互,和/或远程客户端/ IMAP服务器连接,所以我可以看到这些是否按要求进行?

谢谢。

你确定你有一个SMTP邮件运行,即在端口25 telnet到你的邮件服务器,并获得回应?

我也build议这是一个后缀问题,输出是什么:

 postconf -n 

 tail -n 50 /var/log/maillog (mail.log on ubuntu boxes) 

首先,我会先把这个分成两个问题。 IMAP是由Dovecot处理的。 如果你能够从服务器接收到你的消息,那么Dovecot不是问题,它正在完成它的工作。

发送邮件是用Postfix完成的。 你说“服务器本地的邮件客户端收发邮件就好了”。 – 这表明你的邮件客户端可能没有通过端口25对Postfix服务器进行身份validation,或者它没有在端口25上监听你的外部接口。正如巴特提到的,尝试telnet到端口25,看看你是否得到Postfix横幅。 如果你这样做,请确保你的客户端正在进行身份validation(并且你已经设置了Postfix来允许身份validation),以便他们可以通过你的服务器发送邮件。

你可以通过阅读相关的RFC (特别是第四部分)假装成为一个客户端,假装成一个邮件客户端。 首先closures所有的SSL / TLSconfiguration,看看你是否能够正确地发送邮件。 然后打开它们,使用telnet-sslopenssl client连接到SSL端口。

此外,您需要清楚本地或外部邮件传送是否存在问题。 如果是本地交付,则需要检查postfix是如何完成的。 一种常见的方式是将本地邮件传递到procmail但也可以将它传递给dovecot并且需要确保pipe道正常工作。 检查日志。