Visual RFC.
ALL RFCs / RFC 5321
Read the RFC ↗
RFC 5321 / DELIVERY AND FAILURES

Acceptance & failure reports

09

A positive completion after DATA means the receiver accepts responsibility to deliver, relay, or report a later failure.

Related RFCs and changes

“Updates” changes part of an earlier RFC. “Obsoletes” replaces it. This list shows selected related documents.

DIAGRAM§ 6.1 ↗
RFC 5321 · § 6.1EXAMPLE
4 / 4
Acceptance & failure reportsAfter final DATA acceptance, responsibility shifts from sender to receiver; later delivery failure produces a notification to the reverse-path using a null sender.Acceptance changes who is responsibleIllustrative post-DATA responsibilitySender owns retryuntil completion replyReceiver owns deliveryafter acceptance250Mailbox deliveryor onward relaynext stepMAIL FROM:<>failure reportReport to the envelope reverse-pathAn empty sender prevents error-report loopsReport later failure without an error loop
04
Report a later failure safely.

A notification goes to the reverse-path and uses MAIL FROM:<> to suppress loops.

Protocol participantThreat or exceptionProtocol controlSimplified drawings · precise section references
KEY POINT

Do not accept responsibility casually.

  • After accepting a message, a receiver must arrange delivery or a failure notification under the protocol rules.
  • Later delivery failures are reported to the envelope reverse-path, not simply to the visible From header.
  • Failure notifications use a null reverse-path to prevent endless errors about errors.
DETAILS

A final 250 is not proof that a human read the message. Lost connections around the completion reply can leave uncertain outcomes and cause duplicate deliveries.

Read the RFC section ↗

Diagrams simplify the RFC. Read the linked sections for complete requirements.

Privacy
All chapters in this RFC
  1. Envelope vs message
  2. DNS & the next hop
  3. Greeting & extensions
  4. MAIL, RCPT, DATA
  5. Lines & dot transparency
  6. Replies & later changes
  7. Relays, aliases & traces
  8. Queues, retries & timeouts
  9. Acceptance & failure reports
  10. Security & scope
RFC 9700 / CHAPTERS

Chapters

For full details, tables, algorithms, and exceptions, read the original RFC.

RFC status and corrections ↗