SMTP error codes explained
SMTP reply codes starting with 5 are permanent failures — the message will never be delivered and must not be retried. Codes starting with 4 are temporary, and the sending server will retry automatically. The digits after the first one narrow down the reason, and that is where the fix lives.
Permanent failures — 5xx
Do not retry these. Continuing to send to a permanent failure is one of the fastest ways to damage sender reputation.
- 550 5.1.1
mailbox does not exist
SMTP 550 5.1.1 means the recipient's mail server accepted the connection but rejected the address: the mailbox does not exist on that domain.
- 550 5.7.1
message refused by policy
SMTP 550 5.7.1 means the recipient's server recognised the address but refused the message on policy grounds — failed authentication, a blocklisted sending IP, or content its filters rejected.
- 550 5.4.1
recipient address rejected, access denied
SMTP 550 5.4.1 is Microsoft 365's rejection for an address it does not recognise or will not accept mail for.
- 552 5.2.2
mailbox full
SMTP 552 5.2.2 means the recipient's mailbox is over its storage quota and the server will not accept the message.
- 554 5.7.1
transaction failed, message rejected as spam
SMTP 554 5.7.1 is a flat refusal: the receiving server has decided the message is spam, or that your sending IP or domain is not permitted to send to it.
- 550 5.2.1
mailbox disabled, not accepting messages
SMTP 550 5.2.1 means the mailbox exists but has been disabled and will not accept mail.
- 503 5.5.1
bad sequence of commands
SMTP 503 5.5.1 means the commands arrived in an order the server does not accept — for example DATA before RCPT TO, or a command issued before authentication.
- 535 5.7.8
authentication credentials invalid
SMTP 535 5.7.8 means the username or password offered during authentication was rejected.
- 571 5.7.1
delivery not authorized, message refused
SMTP 571 5.7.1 is a policy refusal: the receiving server will not accept your message and will not retry.
Temporary deferrals — 4xx
These resolve on their own in most cases. A 4xx during mailbox verification is not a verdict on the address — it means unconfirmed.
- 421 4.7.0
temporarily deferred, try again later
SMTP 421 4.7.0 is a temporary deferral: the recipient's server is refusing the message for now and asking you to retry.
- 451 4.3.0
temporary local error, please retry
SMTP 451 4.3.0 is a temporary failure on the receiving side — a local processing error, a full queue, or a filtering component that could not reach a service it depends on.
- 250
accepted, which is not the same as delivered
SMTP 250 means the receiving server accepted the command.
- 450 4.2.1
mailbox temporarily unavailable
SMTP 450 4.2.1 means the mailbox exists but cannot accept mail right now — commonly because it is disabled, over quota, or the server is rate-limiting you.
- 452 4.2.2
insufficient storage, mailbox full
SMTP 452 4.2.2 means the recipient's mailbox is over its storage quota, returned as a temporary failure so the sending server retries.
Reading a reply code
Every SMTP reply has a three-digit basic code and, usually, a three-part enhanced code. The basic code’s first digit is the only part that decides whether to retry: 2xx accepted, 4xx temporary failure, retry, and 5xx permanent failure, do not retry.
The enhanced code adds precision. In 5.1.1 the first digit repeats the class, the second names the subject — 1 for address problems, 7 for policy and security — and the third is the specific detail. So 5.1.1 is a permanent address problem, and 5.7.1 is a permanent policy refusal. They need completely different fixes, which is why the enhanced code matters.
Always read the text after the code too. Most mail servers name the actual reason in plain language, and many include a URL to their own policy page.
Most of these are preventable
550 5.1.1 is the code you see when an address does not exist, and it is the one verification eliminates entirely — before the bounce is recorded against your domain rather than after. The policy codes, 5.7.1 and 554, usually come down to SPF, DKIM and DMARC on your sending domain.
- Check a single address — free, no account
- Audit your sending domain — MX, SPF, DKIM, DMARC, blocklists
- Deliverability glossary — the terms behind these codes