AdSense Placeholder
Slot: header_reference_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.