系统管理指南:网络服务

解析错误消息

本节介绍了如何解析一些与 sendmail 相关的错误消息。此外,还可参阅 http://www.sendmail.org/faq/

以下错误消息包含两种或多种以下类型的信息。


451 timeout waiting for input during source

原因:

sendmail 从可能超时的任何源(如 SMTP 连接)进行读取时,该程序会在开始读取之前将计时器设置为各种 Timeout 选项的值。如果在计时器到期之前没有完成读取,则会出现此消息并且停止读取。通常,这种情况发生在 RCPT 过程中。然后,该邮件在队列中排队以便以后传送。

解决方法:

如果经常显示此消息,请增大 /etc/mail/sendmail.cf 文件中各种 Timeout 选项的值。如果已将计时器设置为一个较大的数字,请查找硬件问题(如网络线路或连接不正确)。


550 hostname... Host unknown

原因:

sendmail 消息表明,在域名系统 (Domain Name System, DNS) 查找过程中,找不到通过 at 符号 (@) 后面的地址部分指定的目标主机计算机。

解决方法:

使用 nslookup 命令验证在该域或其他域中是否存在此目标主机,可能是由于拼写有所不同。否则,请与预定收件人联系并请求正确的地址。


550 username... User unknown

原因:

sendmail 消息表明,在目标主机计算机上,找不到通过 at 符号 (@) 前面的地址部分指定的预定收件人。

解决方法:

检查该电子邮件地址并重试,可能是由于拼写有所不同。如果此修正方法无效,请与预定收件人联系并请求正确的地址。


554 hostname... Local configuration error

原因:

sendmail 消息通常表明,本地主机正尝试向其本身发送邮件。

解决方法:

检查 /etc/mail/sendmail.cf 文件中的 $j 宏的值,确保该值为全限定域名。

描述:

当发送系统在 SMTP HELO 命令中将其主机名提供给接收系统时,接收系统会将其名称与发件人名称进行比较。如果这些名称相同,接收系统将发出此错误消息并关闭连接。HELO 命令中提供的名称即 $j 宏的值。

有关其他信息,请参阅 http://www.sendmail.org/faq/section4.html#4.5


config error: mail loops back to myself.

原因:

如果设置了 MX 记录并使主机 bar 成为域 foo 的邮件交换器,则会出现此错误消息。但是,配置主机 bar 失败,无法了解它即是域 foo 的邮件交换器。

此外,另一种可能是发送系统和接收系统都识别为同一个域。

解决方法:

有关说明,请参阅 http://www.sendmail.org/faq/section4.html#4.5


host name configuration error

描述:

这是一条旧的 sendmail 消息,该消息替换了 I refuse to talk to myself,现在则替换为 Local configuration error 消息。

解决方法:

按照为解析错误消息 554 hostname... Local configuration error 提供的说明进行操作。


user unknown

原因:

尝试向某用户发送邮件时,显示了 Username... user unknown 错误。 该用户位于同一系统中。

解决方法:

检查所输入的电子邮件地址是否存在拼写错误。或者,可将该用户的别名设置为 /etc/mail/aliases 或该用户的 .mailrc 文件中不存在的电子邮件地址。另外,检查用户名的大写字符。电子邮件地址最好不要区分大小写。

有关其他信息,请参阅 http://www.sendmail.org/faq/section4.html#4.17