sendmailコマンドの送信履歴を確認する方法

sendmailコマンドの送信履歴を確認する方法

sendmailコマンドの送信履歴を確認するためには、主に以下の2つの方法があります。

1. ログファイルの確認

sendmailの送信履歴は、通常、メールログファイルに記録されています。
一般的なログファイルの場所は以下の通りです:

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

これらのファイルから確認するには、grepコマンドを使ってsendmailのエントリを検索します。

grep sendmail /var/log/maillog
grep sendmail /var/log/mail.log
grep sendmail /var/log/syslog

2. Mail Queueの確認

sendmailのキューにあるメッセージを確認することもできます。
これにはmailqコマンドを使用します。

mailq

ログの内容例

/var/log/maillogの中のsendmailエントリは以下のような形式です:

Jul 18 14:35:01 hostname sendmail[12345]: x6IAX35H012345: from=<user@example.com>, size=1234, class=0, nrcpts=1, msgid=<20230718073501.12345.user@example.com>, relay=user@localhost
Jul 18 14:35:01 hostname sendmail[12345]: x6IAX35H012345: to=<recipient@example.com>, ctladdr=<user@example.com> (1001/1001), delay=00:00:01, xdelay=00:00:01, mailer=relay, pri=121234, relay=recipient@example.com. [192.168.0.1], dsn=2.0.0, stat=Sent (x6IAX35H012345 Message accepted for delivery)

このように、送信元や送信先、メッセージID、ステータスなどの詳細が表示されます。

補足

特定の日時やメールアドレスでフィルタリングすることもできます。
例えば、特定のメールアドレスでフィルタリングする場合:

grep 'user@example.com' /var/log/maillog

これにより、指定したメールアドレスに関するsendmailのエントリのみを表示することができます。

これらの方法を使って、sendmailコマンドの送信履歴を確認することができます。