← RFC Reference

RFC 3461: SMTP Delivery Status Notification Extension

Current Standard Delivery Status & Bounce Handling Obsoletes RFC 1891 DSNSMTP Extension
ELI5: When you send a certified letter through the postal service, you can request a return receipt. RFC 3461 is the email equivalent — it lets the sending server say “tell me if this message gets delivered, bounces, or gets delayed” by adding special parameters to the SMTP conversation.

Why This Exists

Basic SMTP (RFC 5321) only guarantees you will hear about failures — the receiving server generates a bounce message if delivery ultimately fails. But senders often need more:

Without this extension, senders are blind: silence could mean successful delivery or a lost message. RFC 3461 adds SMTP parameters that let the originating MTA explicitly request delivery status notifications (DSNs) and control their content.

How It Works

The DSN extension is negotiated during the SMTP EHLO handshake. When the receiving server advertises DSN, the sender can use two new sets of parameters:

MAIL FROM Parameters

RCPT TO Parameters

SMTP Session Example

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

; Request DSN with envelope ID, return headers only on bounce
MAIL FROM:<alice@sender.example.com> RET=HDRS ENVID=msg-20260311-0042
250 OK

; Notify on success or failure, preserve original recipient
RCPT TO:<bob@example.org> NOTIFY=SUCCESS,FAILURE ORCPT=rfc822;bob@example.org
250 Accepted

; Suppress all DSNs for this recipient
RCPT TO:<bcc-copy@archive.example.com> NOTIFY=NEVER
250 Accepted

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

Key Technical Details

NOTIFY Values

Value DSN Generated When
SUCCESS Message successfully delivered to the recipient's mailbox
FAILURE Delivery permanently failed (hard bounce)
DELAY Delivery is delayed but still being retried
NEVER No DSN under any circumstance (cannot be combined with other values)

If NOTIFY is omitted, the default behavior is equivalent to NOTIFY=FAILURE — you only get notified on permanent failure.

ENVID Encoding

The ENVID value uses xtext encoding: printable ASCII characters pass through unchanged, but + and = (and characters outside the printable ASCII range) are encoded as +XX where XX is the hex value. This keeps the parameter safe for SMTP transport.

Relay Behavior

Intermediate MTAs that support DSN must propagate the DSN parameters when relaying. If an intermediate MTA does not support DSN, it must still generate appropriate bounce messages per standard SMTP rules, though the fine-grained DSN controls will be lost.

Common Mistakes

Deliverability Impact

DSN support is critical infrastructure for professional email sending:

Related RFCs