メール送信時のSMTPエラー"451 4.3.2 Please try again later"の原因を探る
結論:迷惑メール判定されている可能性がある
「捨てメアド」サービスから情報処理推進機構(IPA)にメールを送信したところ、なぜか不達となって次のようなリターンメールが返って来た。
最後の1行にあるエラーメッセージからメール不達の原因を探る。
RFC 5321 – Simple Mail Transfer Protocol
「451」といった3桁の数字はSMTPステータスコードであり、その意味についてはRFC 5321(日本語訳)の4.2.1.章で規定されている。
「4yz」は一時的な問題で処理を完了できなかったことを、「x5z」は受信側メールシステムのエラーであることを、「xy1」は更に詳細な理由を表しており、「451」は受信側メールシステムの一時的な問題で処理を完了できなかったことを意味する。
しかし、これだけでは理由が漠然としていて原因を特定できない。
RFC 5248 – A Registry for SMTP Enhanced Mail System Status Codes
「4.3.2」といったピリオド区切りの数字はSMTP拡張ステータスコードであり、その持つ意味についてはRFC 5248(日本語訳)で規定されている。といってもRFC 5248は基本的にRFC 3463(日本語訳)を参照するよう書かれているので、そちらを読んだ方が早い。
「4.XXX.XXX」は一時的な障害を、「X.3.XXX」はメールシステムの問題であることを、「X.3.2」はシステムがネットワークメッセージを受け付けないことを意味する。
先程と似たような内容でしかなく、情報量があまり増えていない。
エラーメッセージについて
SMTP(拡張)ステータスコードの後ろに続くエラーメッセージは決まり文句があるわけではなく、個別具体的な記述ができるようになっている。RFC 5321では「451 Requested action aborted: error in processing」と「451 Requested action aborted: local error in processing」という2つの異なるテキストが例示されているが、今回は「451 4.3.2 Please try again later」となっている。この表現でインターネット検索してみたところ、いくつかの記事がヒットした。
どれも推定原因がバラバラで、最終的に解決したかどうかも分からない記事もあるが、Symantec Messaging Gateway、clamav、Spamassassin、dk-filterなど迷惑メール判定に関する製品名が出ていることが共通している。
もしや「捨てメアド」が迷惑メール判定を喰らっているのか? と思い試しに別のメールアドレスからメールを送ってみたところ、無事届いた。
まあ、迷惑メールフォルダに振り分けられたまま気付かれないよりは、リターンメールで不着を知らせる方が親切といえるのかもしれないが、簡単な問い合わせ1件のためだけにメールアカウントを新しく作るというのも面倒である。おそらく職員は一部のメールサーバからメールが届かない事実を認識していないことだろう。
そもそも捨てメアドの無料会員はWebブラウザベースでの送信しか許されず、有料会員でないとSMTP送信できないため、迷惑メールの一斉送信には不向きで、ブラックリスト登録されにくく、迷惑メール判定を喰らった経験もなかったので、腑に落ちないところもある。
今回は結局SMTPステータスコードの意味やエラーメッセージの内容は当てにならなかった。RFCに精通したエンジニア達の開発するMTAと違って、迷惑メール対策製品はその辺がいい加減なのだろう。「一時的」「Please try again later」との言葉を真に受けて日を置いても事象は改善されない。いつ喪明けするとも知れない状況では、さっさと見切りを付けて他の通信手段に頼った方が早い。