在哪里查看 sendmail 的日志?

在哪里查看 sendmail 的日志?

我无法发送电子邮件,

需要查看日志,

但是日志在哪儿?

答案1

日志在哪儿?

默认位置取决于你的 Linux/Unix 系统,但最常见的位置是

  • /var/log/邮件日志
  • /var/log/mail.log
  • /var/adm/邮件日志
  • /var/adm/syslog/mail.log

如果不存在,请向上查找/etc/syslog.conf。您应该会看到类似以下内容的内容

mail.*         -/var/log/maillog

发送邮件将日志写入mailsyslog 工具。因此,写入哪个文件取决于系统日志已配置。

如果您的系统使用系统日志工具(而不是更“传统”的系统日志),然后你必须查找你的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

如果是这种情况,请删除“Addr=127.0.0.1”部分,重建您的配置文件,就可以了!

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

答案2

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

此外,如果没有任何事发生,您可能需要按如下方式检查您的防火墙(请务必以 root 身份执行此操作):

[root@web01 ~]# iptables -L
链输入(策略接受)
目标 保护 优化 源 目标         
接受 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 端:源
DROP tcp -- 任何地方 tcp dpt:ssh 状态 NEW 最近:UPDATE 秒数:60 hit_count:8 TTL-Match 名称:SSH 端:源

链转发(策略接受)
目标 保护 优化 源 目标         

链输出(策略接受)
目标 保护 优化 源 目标         

链 RH-Firewall-1-INPUT(0 个引用)
目标 保护 优化 源 目标         
[root@xxxx ~]#

答案3

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

答案4

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

我通过搜索找到了这个答案。/var/log/mail 只包含 Fedora 上的“统计”文件。所有其他提到的目录都不存在。

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

相关内容