Cheat Sheets Networking

SMTP Reply Codes Cheat Sheet

Every standard SMTP reply code with its meaning, how the three digits are built, the enhanced status codes bounces carry and what to do with the common ones.

Last reviewed:

AdSense Placeholder
Slot: header_reference_page
On this page

An SMTP server answers each command with a three-digit code, and a bounce message usually repeats it together with an enhanced status code (5.1.1). Paste the headers of a bounced or suspicious message into the Email Header & Security Analyzer, and see MTA-STS and How Email Transport Security Works for how servers secure the connection.

How to read a code

  • First digit: 2 success, 3 more input needed, 4 temporary failure (the sender should retry), 5 permanent failure (do not retry).
  • Second digit: 0 syntax, 1 information, 2 connection, 5 mail system.
  • Enhanced codes use class.subject.detail (RFC 3463): class 2, 4 or 5, then a subject such as 1 addressing, 2 mailbox, 7 security or policy.

Reply codes

Code Meaning
211 System status or help reply
214 Help message
220 Service ready (the greeting)
221 Service closing the connection
250 Requested action completed
251 User not local; message will be forwarded
252 Cannot verify the user, but will accept the message
354 Start mail input; end with a line holding only a dot
421 Service not available; closing the channel (try later)
450 Mailbox unavailable, for example busy or greylisted (try later)
451 Local error in processing (try later)
452 Insufficient system storage (try later)
455 Server cannot accommodate the parameters
500 Syntax error, command not recognised
501 Syntax error in the parameters
502 Command not implemented
503 Bad sequence of commands
504 Command parameter not implemented
521 The host never accepts mail
550 Mailbox unavailable or rejected by policy
551 User not local
552 Message exceeds the storage or size limit
553 Mailbox name not allowed
554 Transaction failed (often a spam or policy rejection)
555 MAIL FROM or RCPT TO parameters not recognised
556 The domain does not accept mail

Enhanced status codes

Enhanced code Meaning
2.0.0 Success
4.2.2 Mailbox full (try later)
4.7.0 Temporary security or policy block, such as greylisting or rate limiting
5.1.1 Bad destination mailbox address: the user does not exist
5.1.2 Bad destination system address: the domain does not exist
5.2.2 Mailbox full (permanent)
5.3.4 Message too big for the system
5.4.1 No answer from the host (often a recipient access rule)
5.7.1 Delivery not authorised or rejected by policy (spam, blocklist, failed SPF/DKIM/DMARC)
5.7.26 Message failed authentication (unauthenticated sender rejected, used by large providers)

What to do

  • 4xx: wait. Mail servers retry for hours or days with growing gaps, so a single 450 is normal for greylisting.
  • 550 5.1.1: fix the address; the recipient does not exist.
  • 550 5.7.1 or 554: the receiver judged the message unwanted. Check SPF, DKIM and DMARC and whether your IP is on a blocklist with the DNSBL Blacklist Checker.
  • 552 or 5.3.4: shrink or split the message.
  • 421 during a long session: the server is overloaded or rate limiting you; slow down.

Try these tools

See also

  • Cheat sheet SPF, DKIM and DMARC Syntax Cheat Sheet
    Record syntax for SPF mechanisms and qualifiers, DKIM signature and key tags (RFC 6376) and DMARC tags (RFC 7489 and RFC 9989).
  • Cheat sheet HTTP Status Codes Cheat Sheet
    The HTTP status codes you will actually meet, grouped by class, with the pairs people confuse (401 vs 403.
  • Glossary MTA-STS
    MTA-STS is a standard (RFC 8461) that lets a domain require that other mail servers deliver its email over verified TLS encryption.
  • Glossary MX record
    An MX (mail exchanger) record is a DNS record that names the servers that accept email for a domain, with a priority number.
  • Guide How Email Authentication Works: SPF, DKIM and DMARC
    What SPF, DKIM and DMARC each check, what their DNS records look like.
  • Guide How Email Transport Security Works
    How mail servers encrypt delivery between each other: STARTTLS and why it can be downgraded, what MTA-STS and TLS-RPT add.
AdSense Placeholder
Slot: footer_leaderboard