メール送信件数を調べる

メール送信件数についての調査結果。送信サーバが原因でメール送信がブロックされることがあるので、/var/log/maillogメールの送信件数を調べる方法です。

日毎に送信件数(status=sentの行数)をカウントする
grep 'status=sent' /var/log/maillog | awk '{print $1, $2}' | sort | uniq -c

過去に遡る場合は、maillog.1などのファイルも参照するので以下のよう参照先を/var/log/maillog*にします。

過去のmaillogファイルも含める

grep 'status=sent' /var/log/maillog* | awk '{print $1, $2}' | sort | uniq -c

送信元で集計する場合は以下のようにします。

fromアドレス毎に集計した上位10件(=head)

grep 'status=sent' /var/log/maillog* | awk -F'from=|, ' '{print $2}' | sort | uniq -c | sort -nr | head

宛先のドメイン毎に集計した上位10件

grep 'status=sent' /var/log/maillog | awk -F'to=|>' '{print $2}' | awk -F'@' '{print $2}' | sort | uniq -c | sort -nr | head

/var/log/maillogのログの解析なので、ログに残らない不正利用がある場合は別途対策が必要。

メールログの調査は、メール配信のトラブルシューティング、セキュリティインシデントの分析、システムの監査などを目的として行われます。調査方法はメールシステムの種類(クラウドサービス、オンプレミスサーバー)によって異なります。 

主要なメールシステムでの調査方法

メールシステム 調査方法
Microsoft 365Exchange 管理センター「メッセージ追跡」機能を使用します。過去90日間の配送情報を確認できます。
Google Workspace (Gmail)Google 管理コンソール「セキュリティ センター」 > 「調査ツール」から「Gmail のログイベント」を選択して検索します。
オンプレミスサーバー (Postfixなど)サーバー上のログファイル(通常は /var/log/maillog や /var/log/mail.log など)を直接確認します。greptail などのコマンドラインツールを使用して必要な情報を抽出します。

調査の手順とログからわかる情報

一般的な調査手順は以下の通りです。 

  1. 目的の明確化: 何を知りたいのか(例: 特定のメールが届いたか、スパムメールの送信元はどこか)を明確にします。
  2. ログへのアクセス: 使用しているメールシステムに応じた方法でログファイルまたは管理画面にアクセスします。
  3. 情報の抽出と分析: ログには通常、以下の情報が含まれています。
    • 配信日時
    • 送信者/受信者のメールアドレス
    • メッセージID (Message ID)
    • 送信結果 (成功、遅延、拒否などのステータスコード)
    • 送信元/送信先のSMTPサーバー情報
  4. 結果の解釈: ログエントリを時系列で追い、メールがどのように処理されたかを理解します。エラーメッセージ(例: deferredbouncedrejected)はトラブルシューティングの手がかりとなります。
  5. 文書化と報告: 調査結果をまとめ、必要に応じて関係者に報告します。 

注意点

  • 管理者権限: クラウドサービスの場合、ログ調査には管理者権限が必要です。
  • ログの保存期間: ログの保存期間はシステムによって異なります。必要な期間のログが残っているか確認してください。
  • プライバシー: 社員のメールモニタリングには、適切な社内規定と法的な考慮が必要です。