メモ > サーバ > 各論: コマンド > バウンスメールを解析
バウンスメールを解析
メールログの調査だけではなく、バウンスメールも解析するといい。
でも「バウンスは発生しないが、メールも届かない」はあり得るのでこれも絶対ではない。(迷惑メール扱いされた、など。)
Postfix+VERPでメールを識別できるようにする…という方法はあるが、
maillogを解析して「どのアドレスに届かなかったか」が判ればある程度は対応できる。
が、可能ならmaillogとバウンスメールの両方を調査できる状態にしておくことが好ましい。
VERP でメール不達エラーの宛先アドレスを識別する
https://fumiyas.github.io/2014/12/25/verp.postfix-advent-calendar.html
バウンス理由の一覧 | Sisimai: Mail Analyzing Interface
https://libsisimai.org/ja/reason/
■バウンスメールの概要
Network.txt の「バウンスメール」を参照。
■バウンスメールの書式
バウンスメールの書式はRFCで定義されているが、定義に沿っていないものもあるようなので注意。
5.3 バウンスメールにより通知される送信失敗|Cuenote
https://www.cuenote.jp/documents/smtp/000203.html
以下はRFCによるものだが推測も含む。
メールヘッダの「Content-Type」に以下が記録されるみたい。
これにより、バウンスメールか否かを判断できそう。
multipart/report; report-type=delivery-status;
バウンスメールの場合、メール本文に以下のような情報が記載される。
これにより、バウンスの理由などを判断できそう。
Reporting-MTA: dns; web1.refirio.net
Received-From-MTA: DNS; localhost
Arrival-Date: Tue, 1 Jun 2021 13:06:22 +0900
Final-Recipient: RFC822; xxxxxxxxxx@ezweb.be.jp
Action: failed
Status: 5.1.2
Remote-MTA: DNS; ezweb.be.jp
Diagnostic-Code: SMTP; 550 Host unknown
Last-Attempt-Date: Tue, 1 Jun 2021 13:06:22 +0900
以下のようなものもある。似た内容が記録されるが、項目には差がある。
Reporting-MTA: dns; web1.refirio.net
Arrival-Date: Tue, 1 Jun 2021 08:52:57 +0900
Final-Recipient: RFC822; xxxxxxxxxxxx@icliud.com
Action: delayed
Status: 4.4.1
Remote-MTA: DNS; icliud.com
Last-Attempt-Date: Tue, 1 Jun 2021 13:45:01 +0900
Will-Retry-Until: Sun, 6 Jun 2021 08:52:57 +0900
「550」のような値は応答コード、「5.1.1」のような値はステータスコード。
これらにより、バウンスメール扱いとなった理由を知ることができる。
メール配信が失敗した時のエラーコード一覧!エラー内容を把握して配信リストの質を高めよう - Benchmark Email
https://www.benchmarkemail.com/jp/blog/error-codes-of-bounced-emails/
メールのエラーコード(SMTPステータスコード)の意味と対策 | ベアメールブログ
https://baremail.jp/blog/2021/02/25/1020/
■バウンスメールの種類
バウンスメールはソフトバウンスとハードバウンスに分けられる。
ソフトバウンスは、メールアドレスが正しく、受信者のサーバに到達したが、以下の様な理由で返されたということを意味する。
・メールボックスが一杯だった。
・サーバがダウンしていた。
・メッセージサイズが大きすぎた。
ハードバウンスは、以下の様な理由で受信を恒久的に拒否された場合に発生する。
・メールアドレスが無効/不正。
・メールアドレスが存在しない。
ハードバウンスが発生したメールアドレスにメールを送り続けると、手当たり次第にスパムを送信していると判定される可能性がある。
メール送信サービスによっては、ハードバウンスの割合が一定数を超えると利用警告されることがあるので注意。
場合によっては、実際にメールを送信する前にアドレスの妥当性を検証する仕組みの導入を検討する。
メールアドレスをリアルタイムに検証してハードバウンスをなくす方法 | SendGridブログ
https://sendgrid.kke.co.jp/blog/?p=7837
なお、ハードバウンスは
「応答コードが550で、ステータスコードが5.1.1 もしくは 5.1.2」
という判定ができそう。(要検証。)
バウンスメールとその対策 | SendGridブログ
https://sendgrid.kke.co.jp/blog/?p=1338
ステータスコードが5.2.0としてバウンスメールになることもあるが、
これはドメイン指定拒否の場合に記録されるものみたい。
携帯電話宛バウンスの宛先不明とドメイン指定拒否を見分ける | Sisimai: Mail Analyzing Interface
https://libsisimai.org/ja/docs/distinguish-between-the-unknown-and-the-filtered.html
メールを解析していると、はじめから件名に「[SPAM]」と付いていることがある。
プロバイダなどが自動で付与しているものだと思われるので、基本的にはスパム扱いで問題なさそう。
タイトルに[spam]とついたメールが届く | よくある質問(FAQ) | BIGLOBE会員サポート
https://faq.support.biglobe.ne.jp/faq_detail.html?faq_id=12363