需要查看日志,
,但是日志在哪里?
#1 楼
日志在哪里?默认位置取决于您的linux / unix系统,但是最常见的位置是
/ var / log / maillog
/var/log/mail.log
/var/adm/syslog/mail.log
如果不存在,请查找
/etc/syslog.conf
。您应该看到类似以下内容的内容:sendmail将日志写入syslog的mail
工具中。因此,写入哪个文件取决于syslog的配置方式。如果您的系统使用syslog-ng(而不是更“传统的” syslog),则必须查找
syslog-ng.conf
文件。您应该是这样的:mail.* -/var/log/maillog
无法发送电子邮件?
我见过的最常见原因之一新安装的sendmail无法发送电子邮件是DAEMON_OPTIONS设置为仅在127.0.0.1上侦听。
请参见/etc/mail/sendmail.mc
# 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"); };
如果是这种情况,请删除“ Addr = 127.0.0.1”部分,重新生成您的conf文件,您就可以开始使用了! />如果到目前为止您一直在手动更改/etc/sendmail.cf(而不是* .m4文件),则可以在/etc/sendmail.cf中进行类似的更改。令人讨厌的行如下所示:
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
将其更改为:
DAEMON_OPTIONS(`Port=smtp, Name=MTA')dnl
[root@server]$ m4 sendmail.mc > /etc/sendmail.cf
[root@server]$/etc/init.d/sendmail restart
评论
尾-f / var / log / maillog
–托马斯·丹顿(Thomas Denton)
09年8月28日在14:49
我认为,这里的关键是/etc/mail/sendmail.mc中的“ DaemonPortOptions = Port = smtp,Addr = 127.0.0.1,Name = MTA”很好的技巧。保存了我的一天,谢谢
– serfer2
17年6月30日在7:17
但是为什么要删除127.0.0.1?让守护程序在公共接口上侦听似乎不是最安全的方法。 (我建议删除整个“无法发送电子邮件”部分,因为它与OP无关。)
–阿洛瓦·马哈德
17年8月24日在16:23
#2 楼
如果在* nix上,请检查/ var / log / maillog或/ var / log / messages。以此为根):[root@web01 ~]# iptables -L Chain INPUT (policy ACCEPT) target prot opt source destination ACCEPT tcp -- anywhere anywhere tcp dpt:ms-v-worlds ACCEPT tcp -- anywhere anywhere tcp dpt:imaps ACCEPT tcp -- anywhere anywhere tcp dpt:imap ACCEPT tcp -- anywhere anywhere tcp dpt:pop3 ACCEPT tcp -- anywhere anywhere tcp dpt:smtp tcp -- anywhere anywhere tcp dpt:ssh state NEW recent: SET name: SSH side: source DROP tcp -- anywhere anywhere tcp dpt:ssh state NEW recent: UPDATE seconds: 60 hit_count: 8 TTL-Match name: SSH side: source Chain FORWARD (policy ACCEPT) target prot opt source destination Chain OUTPUT (policy ACCEPT) target prot opt source destination Chain RH-Firewall-1-INPUT (0 references) target prot opt source destination [root@xxxx ~]#
评论
或者,在* nix上,查看/etc/syslog.conf以查看那些日志消息可能还会发送到哪里。
– Liudvikas Bukys
09年8月27日在16:34
我看不到iptables中的smtp条目
– Umair Ayub
19年2月13日在7:49
#3 楼
尝试查看/var/log/mail.info或/var/log/mail.err#4 楼
还要检查/ var / spool / mqueue以获取当前缓存的传出邮件#5 楼
对于fedora等。 journalctl _COMM = sendmail将显示来自sendmail的消息。我通过搜索被引导至此答案。 / var / log / mail在Fedora上仅包含一个“统计”文件。而且所有其他提到的目录都不存在。
如果您不知道要使用什么参数ymmv,journalctl不够直观。所以我已经发布了这个解决方案。
#6 楼
/var/log/maillog
#7 楼
您可以创建自己的日志文件[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
评论
希望让我们知道您使用的是什么操作系统?正如其他人在下面指出的那样,在大多数系统上,它是/ var / log / maillog。在Solaris上,它是/ var / adm / maillog。在Debian / Ubuntu上是/var/log/mail.log(注意点)。tail -f / var / log / maillog
+1精彩的句
@armadadrive只需要删除第一行中的“ I”。但是,是的,great句:-D
注意:如果这些路径都不起作用,或者您使用的是cPanel,则可能使用的是Exim(Sendmail的替代品)。如果是这样,您的日志可能位于/var/log/exim/main.log。