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

Replies & later changes

06

Reply classes tell the client whether to proceed, send more information, retry later, or treat an attempt as permanently rejected.

Related RFCs and changes

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

DIAGRAM§ 4.2 ↗
RFC 5321 · § 4.2EXAMPLE
4 / 4
Replies & later changesAn RCPT command branches into success, transient rejection leading to a queue, or permanent rejection leading to failure handling.A reply changes the delivery decisionIllustrative RCPT outcomesRCPT TO:<user@example>250accepted450temporary550permanentQueue for retryretain mail object550: handle failure; do not repeat unchangedA 5xx reply calls for permanent-failure handling
04
Handle a permanent rejection.

The client reports failure or otherwise changes the request rather than treating it as a transient outage.

Protocol participantThreat or exceptionProtocol controlSimplified drawings · precise section references
WHAT CHANGED
RFC 5321 §§4.2.2–4.3.2RFC 7504 §5.1

RFC 7504 adds 521 at connection opening for a host that never accepts mail, and 556 for a destination domain known not to accept mail.

Read the updated RFC section ↗
KEY POINT

A temporary failure is different from a permanent refusal.

  • 2xx reports successful completion; 3xx requests continuation data.
  • 4xx reports transient failure, suitable for later retry under queue policy.
  • 5xx reports permanent negative completion for the command; do not blindly repeat the unchanged attempt.
DETAILS

A reply applies to the command and context that produced it. Human-readable text can explain, but the three-digit code drives protocol decisions.

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 ↗