ひと目でわかる要点 2xx:成功 · 4xx:一時的な失敗、後で再試行 · 5xx:恒久的な失敗、再試行しない · x.y.z:拡張ステータスコードによる詳細(RFC 3463)
要点まとめ
- 応答の構造 サーバーはSMTPのやり取りでコマンドに応答するとき、3桁のコードに続けてテキストを返します。
- 成功と継続:2xxと3xx 250は、コマンドが成功したことを意味します。メッセージデータの終了後に返された場合は、サーバーが配信の責任を引き受けたことを意味します。
- 一時的な失敗:4xx 421は、サービスが利用できないか接続が閉じられることを意味し、多くはレート制限やサーバーの混雑が原因です。
- 恒久的な失敗:5xx 550は、メールボックスが利用できないか、メッセージが拒否されたことを意味します。
- 拡張ステータスコード 拡張コードのクラスは、成功が2、継続的な一時的失敗が4、恒久的な失敗が5です。
- ポリシーによる拒否と確認事項 コードが5.7.xの場合やテキストにポリシーへの言及がある場合は、よくある原因を順に確認してください。SPF、DKIM、DMARCの失敗、IPやドメインのブロックリスト登録、送信レートや苦情率の高さ、フィルターに引っかかったコンテンツなどです。
応答の構造
サーバーはSMTPのやり取りでコマンドに応答するとき、3桁のコードに続けてテキストを返します。コードはプログラム向け、テキストは人間向けです。応答には、5.1.1のようなクラス.主題.詳細の形式の拡張ステータスコードが含まれることもあります。
550 5.1.1 The email account that you tried to reach does not exist.
メインコードの最初の桁で、取るべき対応がわかります。2xxは成功、3xxは続きを送信、4xxは一時的な失敗、5xxは恒久的な失敗を意味します。
成功と継続:2xxと3xx
250は、コマンドが成功したことを意味します。メッセージデータの終了後に返された場合は、サーバーが配信の責任を引き受けたことを意味します。ただし、受理されたことは受信トレイに届いたことを意味しません。迷惑メールとして振り分けられたり、後から失敗したりすることがあります。
354は、サーバーがメッセージデータを受け取る準備ができたことを意味します。3xxのコードは、実際のやり取りの中以外ではほとんど目にしません。
一時的な失敗:4xx
421は、サービスが利用できないか接続が閉じられることを意味し、多くはレート制限やサーバーの混雑が原因です。450または451は、グレーリスティングやローカルエラーなどにより、現時点では処理が行われなかったことを意味し、452はサーバーの容量不足または宛先数が多すぎることを意味します。
送信側サーバーはメッセージを保持し、スケジュールに従って再試行する必要があります。プロバイダーが頻繁に遅延させる場合は、送信速度を落としてください。遅延は送信量を減らしてほしいという要請だからです。数日経っても遅延が続くメッセージは、最終的に配信不能として返送されます。
恒久的な失敗:5xx
550は、メールボックスが利用できないか、メッセージが拒否されたことを意味します。551や553は宛先またはアドレス形式の問題に関するもので、552はメッセージがサーバーの許容サイズを超えていることを、554はトランザクションが失敗したことを意味します。554は多くのサーバーがポリシーによる拒否に使う応答です。
5xxを受け取った場合、同じメッセージを再試行してはいけません。テキストから理由を特定して修正し、存在しないアドレスは削除して、送信を止めてください。
拡張ステータスコード
拡張コードのクラスは、成功が2、継続的な一時的失敗が4、恒久的な失敗が5です。主題の番号は原因を分類するもので、1がアドレス指定、2がメールボックス、3がメールシステム、4がネットワーク、5がプロトコル、6がコンテンツ、7がセキュリティまたはポリシーです。
5.1.1 bad destination mailbox address
5.2.2 mailbox full
5.4.1 no answer from the host
5.7.1 delivery not authorised or refused by policy
5.1.1は宛先のメールボックスが存在しないこと、5.2.2はメールボックスが満杯であること、5.7.1は配信が許可されなかったことを意味し、多くのポリシー上の拒否がこれに該当します。コードはカテゴリーを示し、テキストが理由を示します。
ポリシーによる拒否と確認事項
コードが5.7.xの場合やテキストにポリシーへの言及がある場合は、よくある原因を順に確認してください。SPF、DKIM、DMARCの失敗、IPやドメインのブロックリスト登録、送信レートや苦情率の高さ、フィルターに引っかかったコンテンツなどです。大手プロバイダーは表現がそれぞれ異なり、ヘルプページへのリンクを示すことも多くあります。
最初の項目は当社のSPF・DKIM・DMARCチェッカー、2番目は当社のブロックリストチェックで確認でき、残りは苦情率とバウンス率からわかります。
バウンスメッセージ
メッセージを受理した後に配信できなくなった場合、受信側または中継側のサーバーが、バウンス(配信状態通知とも呼ばれます)をReturn-Pathアドレスに送り返します。標準フォーマットはRFC 3464に定められており、コードと診断テキストが含まれます。
送信プラットフォームがこれらを読み取り、受信者ごとの結果を記録します。恒久的な失敗が抑制リストに追加されるようになっているか、必ず確認してください。
参考資料と出典
- RFC 5321: Simple Mail Transfer Protocol
- RFC 3463: Enhanced Mail System Status Codes
- RFC 3464: An Extensible Message Format for Delivery Status Notifications
MigoSMTPで実践:ヘルプセンターの記事
関連ガイドとツール
- バウンスコード検索:ログにあるコードを読み解きます。
- メールバウンスの種類:ハードバウンス、ソフトバウンス、ブロックバウンス。
- SPF・DKIM・DMARCチェッカー:認証を確認します。
- ブロックリストチェック:IPを検索します。
さっそく試してみませんか?無料プランから始めて、数分で最初のメッセージを送信できます。
よくある質問
SMTPの4xxと5xxのコードは何を意味しますか?
4xxは一時的な失敗で、送信側サーバーは後で再試行する必要があります。5xxは恒久的な失敗で、メッセージは拒否されており、同じメッセージを再送しても解決しません。
拡張ステータスコードとは何ですか?
5.1.1のような3つの部分からなるコードで、3桁の応答コードに詳細情報を加えるものです。最初の数字がクラス、2番目が主題、3番目が詳細を表します。RFC 3463で定義されています。
550 5.1.1は何を意味しますか?
そのサーバーに該当するメールボックスが存在しないため、宛先アドレスが受理されなかったことを意味します。ハードバウンスですので、そのアドレスはリストから削除してください。
550 5.7.1は何を意味しますか?
ブロックリスト、認証チェックの失敗、コンテンツなど、ポリシー上の理由でメッセージが拒否されたことを意味します。表現はプロバイダーごとに異なり、説明ページへのリンクが付くことも多いため、コードの後ろのテキストを必ず確認してください。