sendmailのログはどこで確認できますか?


103

メールを送信できませんが、

ログを調べる必要があり、

しかし、ログはどこにありますか?


4
使用しているOSをお知らせください。他の人が以下に述べているように、ほとんどのシステムでは/ var / log / maillogです。Solarisでは、/ var / adm / maillogです。Debian / Ubuntuでは、/ var / log / mail.logです(ドットに注意してください)。
ジェラルドコームズ

1
tail -f / var / log / maillog
トーマスデントン

回答:


72

ログはどこにありますか?

デフォルトの場所はlinux / unixシステムによって異なりますが、最も一般的な場所は次のとおりです。

  • / var / log / maillog
  • /var/log/mail.log
  • / var / adm / maillog
  • /var/adm/syslog/mail.log

存在しない場合は、検索し/etc/syslog.confます。このようなものが見えるはずです

mail.*         -/var/log/maillog

sendmailはログをmailsyslog の機能に書き込みます。したがって、どのファイルに書き込まれるかは、syslogの構成方法によって異なります。

システムが(より「従来の」syslogの代わりに)syslog-ngを使用する場合、ファイルを検索する必要があります。次のようになります。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がメールを送信できないことで私が見た最も一般的な理由の1つは、127.0.0.1でのみリッスンするように設定されているDAEMON_OPTIONSです

/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」の部分を削除し、confファイルを再構築してください。

DAEMON_OPTIONS(`Port=smtp, Name=MTA')dnl

[root@server]$ m4 sendmail.mc > /etc/sendmail.cf
[root@server]$/etc/init.d/sendmail restart

これまで(* .m4ファイルの代わりに)/etc/sendmail.cfを手動で変更した場合は、/ etc / sendmail.cfで同様の変更を行うことができます。問題のある行は次のようになります。

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

次のように変更します。

O DaemonPortOptions=Port=smtp, Name=MTA

1
tail -f / var / log / maillog
トーマスデントン

1
ここで重要なのは、/ etc / mail / sendmail.mcの「DaemonPortOptions = Port = smtp、Addr = 127.0.0.1、Name = MTA」だと思います。私の一日を救った、ありがとう
-serfer2

1
しかし、なぜ127.0.0.1を削除するのですか?デーモンをパブリックインターフェイスでリッスンすることは、最も安全な方法とは言えません。(OPに関連しないため、「メールを送信できません」の部分全体を削除することをお勧めします。)
アロイスマーダル

23

* nixを使用している場合は、/ var / log / maillogまたは/ var / log / messagesを確認してください

また、何も出ない場合は、次のようにファイアウォールを確認することをお勧めします(必ずこれをrootとして実行してください)。

[root @ web01〜]#iptables -L
チェーンINPUT(ポリシーACCEPT)
ターゲットprot optソースdestination         
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 Recent:SET name:SSH side:source 
DROP tcp-どこでもtcp dpt:ssh状態NEW Recent:UPDATE seconds:60 hit_count:8 TTL-Match name:SSH side:source 

チェーンフォワード(ポリシーACCEPT)
ターゲットprot optソースdestination         

チェーン出力(ポリシーACCEPT)
ターゲットprot optソースdestination         

チェーンRH-Firewall-1-INPUT(0参照)
ターゲットprot optソースdestination         
[root @ xxxx〜]# 

1
または、* nixで、/ etc / syslog.confを調べて、それらのログメッセージの送信先を確認します。
リュドヴィカスバキーズ09

iptablesにsmtpのエントリが表示されない
Umair


2

また、現在キャッシュされている送信メールについて/ var / spool / mqueueを確認します


2

フェドラ等について journalctl _COMM = sendmailは、sendmailからのメッセージを表示します。

検索でこの答えに導かれました。/ var / log / mailには、Fedoraの「統計」ファイルのみが含まれます。そして、言及された他のすべてのディレクトリは存在しません。

使用するパラメーターymmvがわからない場合、journalctlは十分に直感的ではありません。このソリューションを投稿しました。



-1

独自のログファイルを作成できます

[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
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.