许多功能可用于解决安装问题。首先要检查的是 Exim 的日志文件。在 Linux 系统上,它们通常保存在/var/log/exim/log并命名为exim_mainlog, exim_rejectlog,以及exim_paniclog。在其他操作系统上,它们通常保存在/var/spool/exim/log。您可以通过运行以下命令来查找日志文件的位置
exim -bP log_file_path |
主日志列出所有事务,拒绝日志包含因策略原因被拒绝的消息的详细信息,而 panic 日志用于与配置错误等相关的消息。
主日志中的典型条目如下所示。日志中的每个条目本身都是一行文本,以日期和时间开头。为了在页面上显示,这里已将它们分成几行
2000-01-30 15:46:37 12EwYe-0004WO-00 <= jack@vstout.vbrew.com H=vstout.vbrew.com [192.168.131.111] U=exim P=esmtp S=32100 id=38690D72.286F@vstout.vbrew.com 2000-01-30 15:46:37 12EwYe-0004WO-00 => jill <jill@vbrew.com> D=localuser T=local_delivery 2000-01-30 15:46:37 12EwYe-0004WO-00 Completed |
这些条目显示,从 jack@vstout.vbrew.com 到 jill@vbrew.com 的消息已成功投递到本地主机上的邮箱。消息到达用<=标记,而投递用=>.
有两种类型的投递错误:永久错误和临时错误。永久投递错误记录在如下日志条目中,用 “**” 标记
2000-01-30 14:48:28 12EvcH-0003rC-00 ** bill@lager.vbrew.com R=lookuphost T=smtp: SMTP error from remote mailer after RCPT TO: <bill@lager.vbrew.com>: host lager.vbrew.com [192.168.157.2]: 550 <bill@lager.vbrew.com>... User unknown |
在此类失败之后,Exim 会发送投递失败报告,通常称为退回消息给发送者。
临时错误用 “==” 标记
2000-01-30 12:50:50 12E9Un-0004Wq-00 == jim@bitter.vbrew.com T=smtp defer (145): Connection timed out |
此错误是 Exim 正确识别出消息应投递到远程主机,但无法连接到该主机上的 SMTP 服务时的典型情况。主机可能已关闭或可能存在网络问题。每当消息像这样被延迟时,它都会保留在 Exim 的队列中,并以间隔重试。但是,如果长时间(通常是几天)未能送达,则会发生永久错误,并且消息将被退回。
如果您无法从 Exim 生成的错误消息中找到问题,您可能需要打开调试消息。您可以使用–d标志,可选择后跟一个数字来指定详细级别(值 9 提供最大信息)。然后,Exim 会在屏幕上显示其操作报告,这可能会为您提供更多关于哪里出错的提示。