← RFC Reference

RFC 3461: SMTP配信状態通知拡張

Current Standard Delivery Status & Bounce Handling Obsoletes RFC 1891 Published March 2026
ELI5: 認定郵便を郵便サービスで送付する場合、配達証明を要求することができます。RFC 3461はメールの同等物です。SMTP会話に特別なパラメータを追加することで、送信サーバーが「このメッセージが配信されたか、バウンスしたか、遅延したかを教えてください」と言うことができます。

これが存在する理由

基本的なSMTP(RFC 5321)は、配信が最終的に失敗した場合にバウンスメッセージが生成されることのみを保証しています。しかし送信者はしばしばさらに多くの情報が必要です:

この拡張がない場合、送信者は盲目的です:沈黙は配信成功を意味する場合もあれば、メッセージが失われたことを意味する場合もあります。RFC 3461は、発信元MTAが配信状態通知(DSN)を明示的にリクエストしてそのコンテンツを制御できるようにするSMTPパラメーターを追加します。

仕組み

DSN拡張はSMTP EHLOハンドシェイク中にネゴシエートされます。受信サーバーがDSNをアドバタイズすると、送信者は2つの新しいパラメーターセットを使用できます:

MAIL FROMパラメーター

RCPT TOパラメーター

SMTPセッション例

EHLO sender.example.com
250-mail.example.org Hello
250-SIZE 52428800
250-DSN
250 STARTTLS

; エンベロープIDを指定してDSNをリクエスト、バウンス時はヘッダーのみを返す
MAIL FROM:<alice@sender.example.com> RET=HDRS ENVID=msg-20260311-0042
250 OK

; 成功または失敗時に通知、元の受信者を保持
RCPT TO:<bob@example.org> NOTIFY=SUCCESS,FAILURE ORCPT=rfc822;bob@example.org
250 Accepted

; このアドレスのすべてのDSNを抑止
RCPT TO:<bcc-copy@archive.example.com> NOTIFY=NEVER
250 Accepted

DATA
354 Start mail input
[message content]
.
250 OK

重要な技術詳細

NOTIFYの値

DSNが生成される条件
SUCCESS メッセージが受信者のメールボックスに正常に配信された
FAILURE 配信が永続的に失敗した(ハードバウンス)
DELAY 配信が遅延しているがまだ再試行中
NEVER いかなる状況下においてもDSNなし(他の値と組み合わせることはできません)

NOTIFYが省略されている場合、デフォルトの動作はNOTIFY=FAILUREと同等です—永続的な失敗の場合のみ通知を受けます。

ENVIDエンコーディング

ENVID値はxtextエンコーディングを使用します:印字可能ASCII文字はそのまま通過しますが、+=(および印字可能ASCII範囲外の文字)は+XXとしてエンコードされます。XXは16進値です。これによってパラメーターはSMTP転送に対して安全に保たれます。

リレー動作

DSNをサポートする中間MTAは、リレー時にDSNパラメーターを伝播する必要があります。中間MTAがDSNをサポートしていない場合、標準SMTPルールに従って適切なバウンスメッセージを生成する必要がありますが、きめ細かなDSN制御は失われます。

一般的な間違い

配信可能性への影響

DSNサポートはプロフェッショナルなメール送信のための重要なインフラストラクチャです:

Related RFCs