本节介绍了如何解析一些与 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。