← RFC Reference

RFC 3464: 配信ステータス通知フォーマット

Current Standard Delivery Status & Bounce Handling Obsoletes RFC 1894 Published March 2026
ELI5: パッケージが配達できない場合、運送業者はその理由を説明するフォームを提供します。RFC 3464は、メッセージがバウンスしたり、遅延したり、正常に配達されたりした時にメールサーバーが記入する標準化されたフォームを定義します。ソフトウェアが自動的に読み取れるように構造化されています。

これが存在する理由

DSNフォーマットが標準化される前、すべてのメールサーバーは独自の自由形式のテキスト形式でバウンスメッセージを生成していました。これらの「バウンスメッセージ」を解析するには、脆弱なヒューリスティック(サーバーが言葉を変更するたびに壊れる正規表現)が必要でした。RFC 3464は、自動バウンス処理を信頼できるものにする機械可読MIMEコンテンツタイプ(message/delivery-status)を定義しています。

このRFCは、RFC 3461(SMTPレベルでDSNをリクエストする方法を定義)およびRFC 3462(DSNをラップするmultipart/reportコンテナを定義)と一緒に機能します。

仕組み

DSNメッセージは、report-type=delivery-statusmultipart/report MIMEメッセージです。最大3つのMIMEパートが含まれます:

  1. 人間が読める説明text/plain)— 人間向けの自由形式テキスト。
  2. 機械が読める状態message/delivery-status)— このRFCで定義された構造化データ。
  3. 元のメッセージmessage/rfc822またはtext/rfc822-headers)— 完全な元のメッセージまたはそのヘッダーのみ(RFC 3461RETパラメータによって異なります)。

delivery-statusボディ

message/delivery-statusパートには、空行で区切られたヘッダーのようなフィールドのグループが含まれます:

; メッセージごとのフィールド(1つのグループ)
Reporting-MTA: dns; mail.example.org
Original-Envelope-Id: msg-20260311-0042
Arrival-Date: Wed, 11 Mar 2026 10:30:00 -0500

; 受信者ごとのフィールド(受信者1人につき1つのグループ)
Original-Recipient: rfc822;bob@example.org
Final-Recipient: rfc822;bob@example.org
Action: failed
Status: 5.1.1
Diagnostic-Code: smtp; 550 5.1.1 User unknown
Last-Attempt-Date: Wed, 11 Mar 2026 10:30:05 -0500

主な技術仕様

メッセージごとのフィールド

フィールド 必須 説明
Reporting-MTA はい このDSNを生成したMTA(DNSホスト名)
Original-Envelope-Id いいえ 元のSMTPトランザクションからのENVID(RFC 3461
DSN-Gateway いいえ DSNが外部メールシステムから変換された場合に表示
Received-From-MTA いいえ メッセージをReporting-MTAに渡したMTA
Arrival-Date いいえ 元のメッセージがReporting-MTAに到着した時刻

受信者ごとのフィールド

フィールド 必須 説明
Final-Recipient はい MTAが実際に配信を試みた受信者アドレス
Original-Recipient いいえ SMTPセッションからのORCPT値— 送信者が使用したアドレス
Action はい 次のいずれか:faileddelayeddeliveredrelayedexpanded
Status はい RFC 3463に基づく拡張ステータスコード(例:5.1.1
Diagnostic-Code いいえ リモートサーバーからの実際のエラー文字列、タイプが先頭に付加(通常はsmtp
Remote-MTA いいえ エラーを返したMTA
Last-Attempt-Date いいえ 最後の配信試行が行われた時刻
Will-Retry-Until いいえ delayedアクションの場合、MTAが諦める時期

アクション値

アクション 意味
failed 永続的な失敗— メッセージは配信されません(ハードバウンス)
delayed 一時的な失敗— 再試行中(ソフトバウンス)
delivered 受信者のメールボックスへの配信成功
relayed さらなるDSNを生成しない可能性のある環境に転送
expanded 複数の受信者に拡張されたメーリングリストまたはエイリアスに配信

完全なDSNメッセージ例

From: mailer-daemon@mail.example.org
To: alice@sender.example.com
Subject: Delivery Status Notification (Failure)
MIME-Version: 1.0
Content-Type: multipart/report; report-type=delivery-status;
    boundary="DSN-BOUNDARY-001"

--DSN-BOUNDARY-001
Content-Type: text/plain

Your message to bob@example.org could not be delivered.
The recipient's mailbox does not exist.

--DSN-BOUNDARY-001
Content-Type: message/delivery-status

Reporting-MTA: dns; mail.example.org
Original-Envelope-Id: msg-20260311-0042
Arrival-Date: Wed, 11 Mar 2026 10:30:00 -0500

Final-Recipient: rfc822;bob@example.org
Action: failed
Status: 5.1.1
Diagnostic-Code: smtp; 550 5.1.1 User unknown

--DSN-BOUNDARY-001
Content-Type: text/rfc822-headers

From: alice@sender.example.com
To: bob@example.org
Subject: Meeting tomorrow
Message-ID: <abc123@sender.example.com>

--DSN-BOUNDARY-001--

一般的な誤り

配信可能性の影響

Related RFCs