On this page
- How SMTP Status Codes Are Structured
- The Codes You'll Actually See
- 421: Service Not Available
- 450: Mailbox Temporarily Unavailable
- 451: Local Processing Error
- 452: Insufficient System Storage
- 550: Mailbox Unavailable / No Such User
- 551: User Not Local
- 552: Exceeded Storage Allocation
- 553: Mailbox Name Not Allowed
- 554: Transaction Failed (Catchall)
- 571: Delivery Not Authorized
- Common Enhanced Status Codes Worth Knowing
- The Sender-Reputation Bounces
- How to Read a Raw Bounce
- How to Triage Bounces
- FAQ
- Bottom Line
- Sources
When an email bounces, SMTP returns a 3-digit code and an optional extended status code (like 5.1.1). Most ESPs surface the code in their dashboard but rarely tell you what to do about it. This reference closes that gap for the codes you'll actually see.
How SMTP Status Codes Are Structured
A response like 550 5.1.1 The email account that you tried to reach does not exist has three layers:
- Basic code (
550): RFC 5321 reply codes. The first digit is the broadest category. - Enhanced status code (
5.1.1): RFC 3463 finer detail. - Reason text: human-readable, varies by recipient server.
The first digit tells you the most:
- 2xx: success.
- 3xx: further input required (continuation).
- 4xx: temporary failure (try again).
- 5xx: permanent failure (don't retry).
The Codes You'll Actually See
421: Service Not Available
The receiving server is temporarily refusing your connection. Common causes:
- Recipient server is overloaded.
- Greylisting (a deliberate temporary deferral).
- Your IP is reputation-rate-limited.
- Maintenance window.
Fix: ESP should auto-retry. If you see persistent 421s from one recipient, your IP reputation with them is likely degraded. Check Postmaster Tools / SNDS.
450: Mailbox Temporarily Unavailable
The mailbox exists but can't accept mail right now. Often used for greylisting and temporary mailbox-full conditions.
Fix: Retry per ESP defaults. After 5 retries over 72 hours, suppress.
451: Local Processing Error
The recipient server hit a temporary internal error. Less commonly, it's used as a generic rate limit.
Fix: Auto-retry. If frequent from one recipient, reduce volume to that domain.
452: Insufficient System Storage
The recipient server is out of disk space (rare these days) or the recipient mailbox is full.
Fix: Auto-retry. Mailbox-full conditions often clear within days.
550: Mailbox Unavailable / No Such User
The most common hard bounce. The mailbox doesn't exist. Extended codes:
5.1.1: bad destination mailbox.5.2.1: mailbox disabled.5.7.1: delivery not authorized (often means your sender was rejected, not the mailbox missing).
Fix: Suppress immediately, except when the extended code is 5.7.1, which is usually a policy/reputation issue, not a missing user.
551: User Not Local
The recipient server isn't authoritative for this domain. You're trying to deliver to the wrong server.
Fix: Almost always a misconfigured MX record or stale forwarding. Check the MX records with the MX lookup and re-resolve.
552: Exceeded Storage Allocation
RFC 5321 calls it exceeded storage allocation; in practice it usually means your message is too big. Most providers cap around 20-25 MB; some Gmail/Outlook business limits are higher.
Fix: Compress attachments or host them and link. Don't retry without modification.
553: Mailbox Name Not Allowed
The recipient address contains invalid characters or your "From" address is rejected.
Fix: Validate the address syntax. If the From address is rejected, check it has valid SPF and DMARC alignment.
554: Transaction Failed (Catchall)
The most common policy rejection. Extended codes are critical:
5.7.0 / 5.7.1: message refused; reasons range from authentication failure to IP blocked.5.7.9: registered for SMTP AUTH ("authentication mechanism is too weak"), but Yahoo returns 554 5.7.9 for policy rejections.5.7.26: multiple authentication checks failed (Gmail sends it with a 550).
Fix: Read the full reason text. Authentication issues require fixing SPF/DKIM/DMARC. Blocks require fixing reputation. Suppression-list issues require addressing the sender, not the mailbox.
571: Delivery Not Authorized
Not a standard RFC 5321 code. Older Microsoft Exchange servers use it for a policy block when your IP or domain is rejected outright.
Fix: Check SNDS for IP reputation, check authentication, check blacklist status with the blacklist checker.
Common Enhanced Status Codes Worth Knowing
| Code | Meaning | Likely fix |
|---|---|---|
| 5.1.1 | Bad destination mailbox | Suppress address |
| 5.1.2 | Bad destination system | Check MX records |
| 5.1.8 | Bad sender system | Your From domain has DNS issues |
| 5.2.2 | Mailbox full | Auto-retry, eventual suppress |
| 5.4.1 | No answer from host | Recipient server is down |
| 5.7.0 | Other security/policy reason | Read full bounce text |
| 5.7.1 | Delivery not authorized | Reputation or auth issue |
| 5.7.9 | Authentication mechanism too weak (Yahoo: policy rejection) | Read the text; at Yahoo, check SPF/DKIM/DMARC |
| 5.7.25 | Reverse DNS validation failed | Set up valid PTR (see reverse DNS (PTR) lookup) |
| 5.7.26 | Multiple authentication checks failed | DMARC alignment broken |
The Sender-Reputation Bounces
A few codes that ESP dashboards often miscategorize as hard bounces but are really reputation problems:
554 5.7.1mentioning "blocked" / "denylisted" / "policy": your sender is being rejected, not the mailbox missing.421 4.7.0followed by reputation language: a temporary throttle.550 5.7.606-649(Microsoft): IP banned from Microsoft 365. Request removal at sender.office.com (Microsoft delist portal), do not suppress.
Suppressing these addresses loses you deliverable contacts. Fix the reputation issue and the same addresses will deliver again.
How to Read a Raw Bounce
A bounce message includes the SMTP response in its body, and the bounce analyzer reads every code in one you paste. Look for the section labelled "Diagnostic-Code" or the indented block under "Final-Recipient":
Final-Recipient: rfc822; user@example.com
Action: failed
Status: 5.7.26
Diagnostic-Code: smtp; 550-5.7.26 This mail has been blocked because the sender is...
The first line of the diagnostic code is the receiving server's exact response. That's what to act on, not your ESP's interpretation.
How to Triage Bounces
A simple weekly triage:
- Group bounces by extended status code (
5.7.xvs5.1.xvs4.x). 5.1.xand5.2.x: list hygiene problem. Suppress, investigate signup quality.5.7.x: reputation or auth problem. Don't suppress; fix the underlying cause.4.x: usually auto-resolves. Investigate only if persistent.
FAQ
What's the difference between 4xx and 5xx codes? 4xx is temporary, so retry. 5xx is permanent, so don't retry. Most ESPs handle this automatically.
Why do I get 550 errors for valid email addresses?
Either the address was deactivated or, more often, the 550 is actually 550 5.7.x and indicates a policy block, not a missing mailbox. Check the extended code.
Should I suppress addresses that return 554?
Only if the extended code clearly says the mailbox is invalid. 554 5.7.x codes are almost always reputation/auth issues. Suppressing them is a mistake.
What does "5.7.26" mean specifically? Gmail sends it as 550 5.7.26. It is the code for "multiple authentication checks failed". Almost always means DMARC alignment broke. Check SPF and DKIM signing, and align your From: domain.
Does retrying a 5xx code damage my reputation? Yes. Persistent retries against a 5xx are seen as bot-like behaviour. Configure your ESP to honor permanent failures.
Bottom Line
SMTP codes are diagnostic gold if you read them. The first digit tells you whether to retry; the extended code tells you what to actually fix. Suppressing every 5xx without reading the extended code is the most common, most expensive triage mistake in deliverability.
👉 Continue: Soft Bounce vs Hard Bounce · Why Did My Sender Reputation Drop? · How to Fix SPF, DKIM, and DMARC
Sources
- RFC 5321: Simple Mail Transfer Protocol, the basic reply codes (421, 450, 451, 452, 550 to 554) and their wording.
- RFC 3463: Enhanced Mail System Status Codes, the class.subject.detail structure of enhanced status codes such as 5.1.1 and 5.7.1.
- IANA SMTP Enhanced Status Codes registry, the current meaning of every enhanced status code, including 5.7.9, 5.7.25 and 5.7.26.
- RFC 3464: An Extensible Message Format for Delivery Status Notifications, the Final-Recipient, Status and Diagnostic-Code fields in a bounce.
- Email nondelivery reports and SMTP errors in Exchange Online (Microsoft Learn), Microsoft's own list of Exchange Online codes, including 5.7.606-649 and 5.7.708.