在哪里检查sendmail的日志?

我不能发送电子邮件,

需要查看日志,

但日志在哪里?

日志在哪里?

默认位置取决于你的linux / unix系统,但最常见的地方是

  • 在/ var /日志/ maillog的
  • /var/log/mail.log
  • 在/ var / ADM / maillog的
  • /var/adm/syslog/mail.log

如果不在那里,请查看/etc/syslog.conf 。 你应该看到这样的东西

 mail.* -/var/log/maillog 

sendmail将日志写入syslog的mail工具。 因此,写入哪个文件取决于如何configurationsyslog

如果您的系统使用syslog-ng (而不是更传统的syslog ),那么您将不得不查找您的syslog-ng.conf文件。 你应该像这样的东西:

 # This files are the log come from the mail subsystem. # destination mail { file("/var/log/mail.log"); }; destination maillog { file("/var/log/maillog"); }; destination mailinfo { file("/var/log/mail.info"); }; destination mailwarn { file("/var/log/mail.warn"); }; destination mailerr { file("/var/log/mail.err"); }; 

无法发送电子邮件?

我发现一个新安装的 sendmail不能发送电子邮件的最常见的原因之一是DAEMON_OPTIONS被设置为仅在127.0.0.1上进行监听

请参阅/etc/mail/sendmail.mc

 dnl # dnl # The following causes sendmail to only listen on the IPv4 loopback address dnl # 127.0.0.1 and not on any other network devices. Remove the loopback dnl # address restriction to accept email from the internet or intranet. dnl # DAEMON_OPTIONS(`Port=smtp,Addr=127.0.0.1, Name=MTA')dnl 

如果这是你的情况,删除“地址= 127.0.0.1”部分,重build你的conf文件,你很好去!

 DAEMON_OPTIONS(`Port=smtp, Name=MTA')dnl [root@server]$ m4 sendmail.mc > /etc/sendmail.cf [root@server]$/etc/init.d/sendmail restart 

如果您到目前为止手动对/etc/sendmail.cf进行了更改(而不是* .m4文件),则可以在/etc/sendmail.cf中进行类似的更改。 违规行将如下所示:

 O DaemonPortOptions=Port=smtp,Addr=127.0.0.1, Name=MTA 

将其更改为:

 O DaemonPortOptions=Port=smtp, Name=MTA 

如果你使用* nix,请检查/ var / log / maillog或/ var / log / messages

另外,如果没有任何事情出去,你可能想检查你的防火墙如下(一定要以root身份):

 [root @ web01〜]#iptables -L
连锁input(政策接受)
目标人select源目的地         
接受tcp  - 在任何地方tcp dpt:ms-v-worlds 
接受TCP  - 在任何地方tcp dpt:imaps 
接受tcp  - 任何地方tcp dpt:imap 
接受TCP  - 在任何地方tcp dpt:pop3 
接受tcp  - 任何地方任何地方tcp dpt:smtp 
            tcp  - 任何地方任何地方tcp dpt:ssh状态NEW最近:SET名称:SSH side:source 
 DROP tcp  - 任何地方任何地方tcp dpt:ssh状态NEW最近:更新秒数:60 hit_count:8 TTL-Match名称:SSH side:source 

连锁FORWARD(政策接受)
目标人select源目的地         

链式输出(策略ACCEPT)
目标人select源目的地         

链RH-Firewall-1-INPUT(0参考)
目标人select源目的地         
 [root @ xxxx〜]# 

尝试查看/var/log/mail.info或/var/log/mail.err

还检查/ var / spool / mqueue当前caching的传出邮件

 /var/log/maillog 

对于fedora等。 journalctl _COMM = sendmail将显示来自sendmail的消息。

我被导向到这个答案通过search。 / var / log / mail只包含Fedora上的'statistics'文件。 而所有其他提到的目录是不存在的。

journalctl不够直观,如果你不知道使用什么参数,ymmv。 所以我发布了这个解决scheme。

您可以创build自己的日志文件

 [admin@local ~]# killall sendmail [admin@local ~]# touch /var/log/sendmail.log [admin@local ~]# sendmail -bd -q15m >> /var/log/sendmail.log 

接着

 [admin@local ~]# tail -f /var/log/sendmail.log 451 4.0.0 /fake/path/sendmail.cf: line 0: cannot open: No such file or directory