RFC 3798: Message Disposition Notification

Previous MDN RFC. Obsoleted by RFC 8098 in 2017.
Alaa
By Alaa
SMTPedia documents email infrastructure end to end: SMTP standards from the RFC archive, delivera...
17 min read Updated Jul 22, 2026 86 views
⚠ Obsoleted by RFC 8098. New implementations should reference the current version.
RFC 3798
Message Disposition Notification
Obsoleted
Published
May 2004
Obsoleted by
RFC 8098
SMTP relevance
Historical
↗ Read on rfc-editor.org

What this RFC defined

RFC 3798 defined the Message Disposition Notification (MDN) format, the standardised read receipt mechanism for email. When a recipient’s mail client read, deleted, or processed a message with a Disposition-Notification-To: header, it could send an MDN back to the requesting address using the format RFC 3798 specified.

Where you would have seen it in practice

Read receipt requests in corporate email environments between 2004 and 2017 followed the MDN format defined by RFC 3798. The machine-readable message/disposition-notification MIME part it defined allowed automated systems to process receipt confirmations without parsing free-form text. Legal and compliance systems that track email receipt and reading used RFC 3798 MDNs as evidence of delivery.

How it connects to other RFCs

RFC 3798 was obsoleted by RFC 8098 in 2017. It built on RFC 6522 (multipart/report) and RFC 5322 (message format). RFC 8098 updated the syntax and improved interoperability guidance for MDNs without changing the fundamental notification mechanism, so existing deployments generating MDNs per RFC 3798 are compatible with RFC 8098 processing systems.

Current status

RFC 3798 was obsoleted by RFC 8098 in February 2017. New MDN implementations should reference RFC 8098. The format changes between the two were minor, so RFC 3798 MDNs remain processable by RFC 8098-compliant systems. RFC 8098 is the current read receipt standard.

Message Disposition Notifications

RFC 3798 defined Message Disposition Notifications (MDNs), commonly called “read receipts”, in May 2004. An MDN is a response indicating what happened to a message after delivery: displayed to the user, dispatched (forwarded), processed automatically, or deleted without display. Senders request an MDN by including a Disposition-Notification-To header pointing to the address where the receipt should be sent. The receiving mail client generates the MDN when the user takes the action (typically opening the message).

Why read receipts often do not work

MDN generation is entirely optional at the recipient side. Every major mail client (Gmail, Outlook.com, Apple Mail) either disables MDN by default, asks the user each time, or requires explicit configuration to enable. Users who value privacy generally decline to send MDNs. Enterprise environments sometimes enforce MDN generation via policy, but for consumer mail, read receipts are unreliable at best. If your workflow depends on knowing whether a message was read, MDN is not the mechanism to rely on; pixel tracking or in-app confirmations are more reliable.

Superseded by RFC 8098

RFC 3798 was obsoleted by RFC 8098 in February 2017. The changes were incremental: internationalization support, integration of errata, and clarification of the multipart/report structure that carries the MDN. The core semantics are unchanged; an implementation targeting RFC 3798 is still compatible with RFC 8098. New work should reference RFC 8098 as the current standard.

Quick Reference

RFC 3798 (May 2004) defined the Message Disposition Notification (MDN) format, the machine-readable read receipt mechanism for email. Senders request an MDN via the Disposition-Notification-To header; recipient mail clients generate a multipart/report response when the user opens or otherwise processes the message. Obsoleted by RFC 8098 in 2017 (backward compatible; new work should target 8098). Not to be confused with RFC 3464 Delivery Status Notifications, which report envelope-level delivery events rather than user disposition.

RFC 3798 at a glance

AspectDetail
PurposeStandardized read receipt format for email
TriggerSender adds Disposition-Notification-To header to outgoing message
Response formatmultipart/report; report-type=disposition-notification per RFC 6522
Generated byRecipient Mail User Agent (MUA), not the server
PublishedMay 2004 (obsoleted by RFC 8098, February 2017)
ReliabilityLow: modern clients default to ignoring or asking; consumer response rate under 5%
Legal weightWeak: forgery is trivial, most jurisdictions do not accept MDN as sole receipt evidence
Modern successorRFC 8098 (incremental revision, backward compatible)

This header is the sender-side trigger for the entire MDN mechanism. Placed in the message header block per RFC 5322, it names one or more addresses that should receive the MDN when the recipient mail client processes the message. Without this header, no MDN is expected or generated.

Syntax

Header format Disposition-Notification-To: mailbox-listWhere mailbox-list follows RFC 5322 section 3.4: address “Display Name” <address> address, address, address
FormExampleNotes
Bare addressDisposition-Notification-To: receipts@example.comMinimal valid form
With display nameDisposition-Notification-To: "Delivery Team" <receipts@example.com>Angle brackets required around address
Multiple addressesDisposition-Notification-To: receipts@example.com, audit@example.comRare: most implementations use one address
IP literalDisposition-Notification-To: user@[192.0.2.10]Legal per RFC 5322 but rejected in practice

Common mistakes

Missing angle brackets with display name. Writing Disposition-Notification-To: Delivery Team receipts@example.com is a syntax error; the display name form requires <address> around the address. Parsers reject or ignore the header entirely.
Address mismatch with envelope sender. Some MDN implementations refuse to send when the Disposition-Notification-To address differs from the Return-Path envelope sender, as anti-abuse protection against MDN-based denial-of-service. Aligning both to the same domain avoids this.
Pointing at a nonexistent mailbox. When the address does not exist, the recipient client dutifully generates the MDN which then bounces at your infrastructure, producing a mysterious DSN apparently unrelated to the original send.
Header placed in the body instead of header block. Per RFC 5322, headers must appear before the blank line separating headers from body. A Disposition-Notification-To in the body is treated as message content, not a header, and produces no MDN.

Client behavior when this header is present

ClientDefault behaviorUser can change
Outlook desktopPrompt: ask user each timeYes: always send, never, or ask
Outlook.com webShow notification, default no responseLimited
ThunderbirdPrompt by defaultYes: per-identity granular control
Apple MailIgnore header entirelyNo built-in UI; third-party plugin only
Gmail (web, mobile, IMAP)Ignore header entirelyNo option exists
Yahoo Mail, iCloud, ProtonMailIgnore header entirelyNo option exists
Exchange with policyAuto-respond per Group PolicyNo: admin controlled

Complete MDN header field reference

Beyond the sender-side trigger, MDN uses a family of headers on the response side. These appear inside the message/disposition-notification MIME part of the returned MDN, not in the original message.

HeaderPurposeFormatRequired?
Reporting-UAIdentifies the mail client that generated the MDNproduct-name; versionOptional
Original-RecipientRecipient address on the original enveloperfc822; addressOptional
Final-RecipientAddress that actually processed the dispositionrfc822; addressRequired
Original-Message-IDReferences Message-ID of the original message (correlation key)<id@domain>Recommended
DispositionWhat happened to the message (the core payload)action-mode/sending-mode; type/modifierRequired
Disposition-Notification-OptionsSender request for specific MDN behaviors (rare)parameter listOptional (on original)
MDN-GatewayIdentifies gateway if MDN relayed through non-SMTP systemsmtp; hostnameOptional

Disposition types

The Disposition header carries the core payload of the MDN. RFC 3798 section 3.2.6 defines six standard type values. Each describes what the recipient did with the message.

TypeMeaningEmitted whenFrequency in practice
displayedMessage was shown to the userUser opened the message in their clientMost common MDN type
dispatchedForwarded to another destination (fax, print, voice)Client bridged the message to another mediumRare today
processedHandled automatically without displayAutomated workflow consumed the messageCommon in enterprise workflows
deletedDeleted without being displayedUser deleted before openingSome clients refuse to send this
deniedRecipient explicitly refused to send an MDNUser clicked “No” on the promptCommon with prompt-by-default clients
failedMDN generation could not completeParser error or system failureVery rare

Modifiers

ModifierPositionMeaning
manual-actionaction-modeUser clicked the action explicitly
automatic-actionaction-modeClient acted without user involvement
MDN-sent-manuallysending-modeUser approved sending the MDN
MDN-sent-automaticallysending-modeClient sent the MDN without asking
errortype-suffixDisposition happened but with reported error
warningtype-suffixDisposition happened but with reported warning
failuretype-suffixDisposition attempt failed

The message/disposition-notification MIME structure

MDN responses are formatted as multipart/report per RFC 6522 with three MIME parts in a defined order. The outer Content-Type parameter report-type=disposition-notification is what tracking systems use to distinguish MDN from sibling DSN reports.

Complete MDN example From: recipient@example.com To: receipts@sender.com Subject: Return Receipt (displayed): Quarterly report Content-Type: multipart/report; report-type=disposition-notification; boundary=”mdn-boundary-xyz”–mdn-boundary-xyz Content-Type: text/plain; charset=utf-8This is a Message Disposition Notification. It confirms that your message “Quarterly report” was displayed to the recipient at recipient@example.com on 2026-07-15 at 09:32 UTC.This does not necessarily mean the recipient read or understood the message.–mdn-boundary-xyz Content-Type: message/disposition-notificationReporting-UA: Mozilla Thunderbird 115.4.0 Original-Recipient: rfc822;recipient@example.com Final-Recipient: rfc822;recipient@example.com Original-Message-ID: <abc123def456@sender.com> Disposition: manual-action/MDN-sent-manually; displayed–mdn-boundary-xyz Content-Type: text/rfc822-headersFrom: sender@sender.com To: recipient@example.com Message-ID: <abc123def456@sender.com> Subject: Quarterly report Date: Wed, 15 Jul 2026 09:15:22 +0000–mdn-boundary-xyz–

Parsers must handle the multipart boundaries correctly, decode each part according to its Content-Transfer-Encoding, and extract the disposition-notification headers from part 2. The parsing logic mirrors what the DSN parsing guide covers for the sibling delivery-status format under RFC 3464; both use the same multipart/report MIME structure.

Client support matrix (2026)

MDN support varies dramatically across mail clients. This asymmetry is the primary reason MDN cannot be relied on for any operational use case. Response rate in a mixed consumer audience is typically under 5%.

ClientVersionRequest MDNGenerate MDNDefaultUser setting
Outlook Desktop2016+YesYesPrompt each timeFull control
Outlook.com WebCurrentYesYesIgnoreLimited
Outlook MobileCurrentNoNoIgnoreNone
Thunderbird60+YesYesPrompt each timeFull per-identity control
Apple Mail macOSCurrentNoNoIgnoreThird-party plugin only
Apple Mail iOSCurrentNoNoIgnoreNone
Gmail (all surfaces)CurrentNoNoIgnoreNone (Workspace admin only)
Yahoo MailCurrentNoNoIgnoreNone
iCloud MailCurrentNoNoIgnoreNone
ProtonMailCurrentNoNoIgnoreNone (privacy-first)
Exchange with policy2016+YesYesAuto-respondAdmin controlled
ZimbraCurrentYesYesPromptPer-account
Practical takeaway. If your workflow depends on knowing whether a recipient read a message, MDN is not the mechanism to use. Modern engagement tracking uses invisible pixels and link click tracking, though these are increasingly blocked by Apple Mail Privacy Protection and similar features. For legal or compliance use cases requiring verified receipt, certified email services (Registered Email, De-Mail, PEC) provide notarized delivery confirmation with independent verification. MDN is best treated as an informational signal, never as authoritative evidence.

MDN vs DSN: side-by-side

MDN and DSN are sibling mechanisms that operators frequently confuse. Both use the multipart/report format from RFC 6522, both return machine-parseable status information to the sender, and both surface in bounce-processing pipelines. But they describe entirely different events at different points in the mail flow.

AspectDSN (RFC 3464)MDN (RFC 3798 / 8098)
What it reportsSMTP delivery outcomeRecipient user interaction
Generated byMail Transfer Agent (MTA)Mail User Agent (MUA)
When generatedDuring SMTP conversationAfter delivery, on user action
ScopeEnvelope-levelMessage-level (per recipient action)
Report-type parameterdelivery-statusdisposition-notification
Status formatEnhanced status codes (RFC 3463)Disposition type values
ReliabilityDeterministic (server-generated)Discretionary (user-dependent)
Typical useBounce classification, suppression listsRead tracking (rarely reliable)
Response rateNear 100% on hard bouncesUnder 5% consumer, 60-80% enterprise

Privacy and abuse considerations

MDN enables denial-of-service patterns when misused. A malicious sender can spoof the Disposition-Notification-To header pointing at a victim address, then send high volumes of mail to MDN-generating recipients. Each recipient generates an MDN back to the victim, producing an unsolicited flood that looks legitimate from the victim inbound perspective. This is why some MDN implementations refuse to send when the Disposition-Notification-To address differs from the envelope sender, and why sender authentication must be verified before honoring MDN requests.

The mechanism reveals recipient behavior to the sender: whether they opened a message, when they opened it, whether they deleted without reading, whether they forwarded it. This is unwanted disclosure from the recipient perspective. Documented abuse patterns include:

List validation for spam. Advertisers historically used MDN to confirm active email addresses, feeding harvested lists with MDN-generating clients. Any MDN response confirmed the address was active and monitored.
Corporate surveillance. Employers used MDN to monitor employee email reading patterns without consent. Some jurisdictions treat this as unauthorized workplace monitoring.
Legal fishing. Adversarial parties requested MDN as evidence of receipt in disputes, though courts have generally not accepted MDN as authoritative because forgery is trivial.

Modern client design responds to these concerns. This pattern of “default deny” is why MDN response rates crashed after 2015 as clients updated their defaults. The mechanism still works between cooperating parties (both sender and recipient explicitly opt in), but does not work for surveillance-oriented use cases.

Programmatic MDN generation

Generating a compliant MDN programmatically requires constructing the multipart/report MIME message with the correct headers, part order, and disposition-notification block.

Python example from email.mime.multipart import MIMEMultipart from email.mime.text import MIMEText from email.mime.message import MIMEMessage from email.utils import formatdatedef build_mdn(original_msg_id, original_recipient, original_headers, disposition=’displayed’, action_mode=’manual-action’, sending_mode=’MDN-sent-manually’): outer = MIMEMultipart(‘report’, report_type=’disposition-notification’) outer[‘From’] = original_recipient outer[‘To’] = ‘receipts@sender.example.com’ outer[‘Subject’] = f’Return Receipt ({disposition})’ outer[‘Date’] = formatdate(localtime=True)# Part 1: human-readable human = MIMEText( f’This is a Message Disposition Notification.\n’ f’Message-ID {original_msg_id} was {disposition}.’, _subtype=’plain’) outer.attach(human)# Part 2: machine-readable disposition-notification dn = MIMEText( f’Reporting-UA: SMTPedia Example 1.0\n’ f’Original-Recipient: rfc822;{original_recipient}\n’ f’Final-Recipient: rfc822;{original_recipient}\n’ f’Original-Message-ID: {original_msg_id}\n’ f’Disposition: {action_mode}/{sending_mode}; {disposition}\n’, _subtype=’disposition-notification’) outer.attach(dn)# Part 3: original headers (optional but recommended) original = MIMEText(original_headers, _subtype=’rfc822-headers’) outer.attach(original)return outer

Common libraries handle multipart/report reasonably well. Python email module supports it natively via MIMEMultipart('report'). Node.js nodemailer requires manual construction. PHP PHPMailer supports it through custom parts. In every case, correctness matters: the report-type parameter must be exactly disposition-notification, the second part Content-Type must be message/disposition-notification, and the Disposition header must follow the exact format from RFC 3798 section 3.2.6.

Legal and compliance context

MDN is not authoritative evidence of email receipt. Most jurisdictions do not accept MDN as proof that a recipient read a message. MDN generation is optional at the recipient side, the disposition value is asserted by the recipient client (not independently verified), and forgery is trivial for anyone with SMTP access. Use certified mechanisms for compliance workflows requiring verified receipt.
Compliance needWeak (informational)Strong (evidentiary)
Prove message was displayedMDN with disposition=displayedCertified email service with notarized timestamp
Prove message was delivered250 OK at SMTP layerISP-level delivery attestation, journaled audit log
Prove message was forwardedMDN with disposition=dispatchedJournaling with cryptographic signature
Prove message was refusedMDN with disposition=deniedSigned refusal receipt from certified service
Regulatory notice deliveryNot sufficient aloneRegistered Email, De-Mail (DE), PEC (IT), certified mail
Legal service of processNot sufficient aloneService by registered mail per local rules

Combined with server-side Received header analysis and authentication verdicts, MDN can add a supplementary data point in compliance workflows. Practitioners should treat it as: “the recipient client asserted this happened at this time.” Informational, never authoritative.

Migration from RFC 3798 to RFC 8098

RFC 8098 replaced RFC 3798 in February 2017. The revision was incremental rather than fundamental. The core MDN semantics (disposition types, header fields, MIME structure) are unchanged.

AspectRFC 3798 (2004)RFC 8098 (2017)Impact if you rely on 3798
Disposition types6 types (displayed, dispatched, processed, deleted, denied, failed)IdenticalNone
ModifiersDefined set (manual-action, MDN-sent-manually, etc.)IdenticalNone
Header syntaxDisposition-Notification-To per RFC 2822Same, references RFC 5322None
MIME structuremultipart/report with 3 partsSame, clarifications on edge casesMinor: some ambiguities in 3798 resolved
Internationalized addressesNot supportedSupported via RFC 5337 / RFC 6531Update parsers if you handle non-ASCII addresses
Errata integrationErrata reported separatelyIntegrated into main textNone (informational only)
Character encodingLimited guidanceExplicit UTF-8 supportUpdate parsers for UTF-8 disposition text
Should you migrate? Sender-side code (generating Disposition-Notification-To on outbound): no changes needed. Receiver-side parsing (interpreting incoming MDN): yes, if you handle internationalized addresses. Generator-side (implementing MDN generation in a client or middleware): target RFC 8098 as the current standard, though practical differences are small.
Foundational RFCs to read alongside RFC 3798
  • RFC 8098: The current MDN standard (replaces 3798)
  • RFC 6522: The multipart/report container format used by MDN and DSN
  • RFC 3464: DSN, the sibling delivery-status mechanism
  • RFC 5322: Internet Message Format (where Disposition-Notification-To lives)
  • RFC 4021: Registration of mail and MIME header fields (formalizes MDN headers)
  • RFC 2045 through 2049: MIME, the foundation for multipart/report
  • RFC 5321: SMTP, which transports MDN messages
  • RFC 6152: SMTP 8-bit MIME extension (needed for internationalized MDN)
  • RFC 5337: Internationalized DSN and Disposition Notifications
  • RFC 6530: Overview of internationalized email
  • RFC 6531: SMTP extension for internationalized email
  • RFC 5965: Feedback Reports (ARF), a third report family for spam complaints
  • RFC 5598: Internet Mail Architecture (frames where MUA vs MTA responsibilities lie)
SMTPedia companion guides

Frequently asked questions

What is the Disposition-Notification-To header used for?

It is the sender-side header that requests a Message Disposition Notification (read receipt) from the recipient mail client. Placed in the message header block per RFC 5322, its value is one or more addresses that should receive the MDN when the recipient opens or otherwise processes the message. Without this header, no MDN is expected. With it, the recipient client evaluates policy and user preference to decide whether to send a response.

Why do most Gmail messages never generate a read receipt?

Gmail does not implement MDN. It ignores the Disposition-Notification-To header entirely and offers no user setting to opt in. This applies to Gmail web, Gmail mobile apps, and Gmail accessed via IMAP. Google Workspace administrators can enable a proprietary read-receipt feature within their tenant, but that is Google-specific and not RFC 3798 compliant. For any consumer Gmail recipient, MDN is effectively unimplemented.

Is an MDN legal proof that the recipient read my message?

Generally no. Most jurisdictions do not accept MDN as authoritative evidence because the MDN is asserted by the recipient client, is entirely optional at the recipient side, and can be forged trivially by anyone with SMTP access. Courts have consistently treated MDN as weak evidence at best. For legal service or regulatory notice, use certified email services (Registered Email, De-Mail in Germany, PEC in Italy) or physical registered mail per local rules.

How is MDN different from DSN?

DSN (defined by RFC 3464) reports what happened at the SMTP delivery layer: whether the receiving server accepted, deferred, or refused the message. It is generated by mail transfer agents during SMTP conversation processing. MDN (RFC 3798, now RFC 8098) reports what happened at the mail user agent layer after delivery: whether the recipient displayed, deleted, or otherwise processed the message. Both use the same multipart/report container from RFC 6522, but they answer different questions. See the side-by-side comparison table above.

Should I update my code from RFC 3798 to RFC 8098?

For sender-side code (generating the Disposition-Notification-To header on outbound messages), no. The header syntax is identical between the two RFCs. For receiver-side parsing, yes if you handle internationalized addresses (RFC 8098 adds proper support via RFC 5337). For generator-side (implementing MDN generation in a mail client or middleware), reference RFC 8098 as the current standard, though the practical differences are small and RFC 3798 output remains fully compatible with 8098 parsers.

What alternative mechanisms exist for tracking whether an email was read?

Modern engagement tracking uses invisible tracking pixels (1×1 images loaded from a sender-controlled server) or click tracking on links (redirect through sender-controlled URLs). Both work independently of MDN and do not require recipient client cooperation. However, both are increasingly blocked by privacy features: Apple Mail Privacy Protection pre-loads all images from Apple proxies, breaking pixel accuracy; Gmail and Outlook filter or defer image loading for many senders; browser tracking prevention breaks click tracking in some environments. The reality of 2026 is that reliable read tracking at the individual recipient level does not exist for consumer email. Aggregate engagement metrics remain useful; per-recipient certainty does not.

Can a spammer use MDN to attack me?

Yes, this is a documented denial-of-service pattern. A malicious sender spoofs the Disposition-Notification-To header pointing at a victim address, sends volume to MDN-generating recipients, and each recipient generates an MDN back to the victim. The victim sees an unsolicited flood of MDN responses from legitimate mail systems. Modern MDN implementations mitigate this by refusing to send MDN when the Disposition-Notification-To address differs from the envelope sender (Return-Path), which breaks the spoofing vector. Verifying sender authentication before honoring MDN requests is the current best practice.


About the Author

Alaa - SMTPedia author

Alaa · LinkedIn

Email infrastructure specialist with 8+ years of hands-on experience in SMTP, deliverability, and email verification. I’ve configured and troubleshot mail systems across Postfix, Exchange, and cloud relays, managed IP reputation and warmup campaigns, and built verification pipelines processing millions of addresses. My work spans DNS authentication (SPF, DKIM, DMARC, BIMI), bounce handling, blocklist monitoring, and compliance frameworks including CAN-SPAM and GDPR. I write every article on SMTPedia to give email professionals, developers, and marketers the accurate, RFC-grounded reference they need.


About SMTPedia

SMTPedia is an independent email industry reference covering SMTP, IMAP, POP3, email deliverability, marketing platforms, DNS authentication, and email verification. Every article is researched from official provider documentation, IETF RFCs, and industry best practices. Settings and configurations are verified quarterly.

We are cited as a source by ChatGPT, Microsoft Copilot, and thousands of email professionals worldwide. Learn more about our editorial process.