All articles SMTP & Infrastructure

SMTP Error Codes Explained: What 4xx and 5xx Messages Really Mean

SSam wallness13 Jun 2026
SMTP Error Codes Explained: What 4xx and 5xx Messages Really Mean

Why SMTP Error Codes Matter to Every Sender

When an email doesn't deliver, your mail server receives a numeric response code from the destination server — and that code tells you exactly why delivery failed. Most senders treat these codes as cryptic noise that lives in server logs, but they're one of the most informative diagnostic tools available. Learning to read SMTP error codes cuts troubleshooting time significantly and removes much of the guesswork from deliverability problems.

The Three-Digit Structure

SMTP response codes follow a consistent three-digit format defined in RFC 5321. The first digit is the most important:

  • 2xx — Success. The command was accepted and completed.
  • 4xx — Temporary failure. Something went wrong, but it may resolve on its own. The sending server should retry.
  • 5xx — Permanent failure. Something is definitively wrong. Retrying will not help.

The second and third digits narrow down the specific reason. Many servers also append enhanced status codes like 4.2.2 or 5.1.1, followed by a plain-text description that explains the problem in human-readable terms.

Common 4xx Temporary Errors

Temporary errors mean the sending server should queue the message and retry. Most MTAs retry for 24–72 hours before giving up and generating a bounce notification.

421 — Service Not Available

421 Service temporarily unavailable means the receiving server is currently unable to accept connections — possibly due to a restart, overload, or maintenance window. Standard retry logic handles this automatically.

450 — Mailbox Unavailable

450 Requested mail action not taken: mailbox unavailable usually means the mailbox exists but can't be accessed right now, often because it's locked or the storage backend is temporarily down.

451 — Local Error in Processing

451 Requested action aborted: local error in processing is a catch-all for server-side issues. It's often related to a DNS failure on the receiving end or a policy check that couldn't complete. Spam filters sometimes return this code intentionally to slow down suspicious senders.

452 — Insufficient Storage

452 Requested action not taken: insufficient system storage means the recipient's mailbox is full (over quota) or the server's disk is at capacity. The message will typically deliver once space is freed.

421 Rate Limiting

Gmail, Outlook, and Yahoo all use 421 to deliberately throttle senders who are sending too fast or too much. This is intentional pacing, not a server error. Slow down your sending rate and retry with exponential backoff rather than hammering the receiving server.

Common 5xx Permanent Errors

Permanent errors mean stop retrying. Add the address to your suppression list if the problem is a bad address, or investigate the underlying configuration issue if it's a policy block.

550 — Mailbox Unavailable

550 is the most common hard bounce code. Its variations tell you a lot:

  • 550 5.1.1 User unknown — The email address doesn't exist
  • 550 5.4.1 Recipient address rejected: domain not found — The domain has no MX records
  • 550 5.7.1 Message rejected due to spam content — Your message triggered content filters
  • 550 5.7.26 This mail is unauthenticated — SPF, DKIM, or DMARC failed

552 — Message Too Large

552 Message exceeds maximum fixed message size is self-explanatory. Strip large attachments, reduce inline images, or link to hosted files instead of attaching them directly.

553 — Mailbox Name Not Allowed

553 Mailbox name not allowed usually means the address format is invalid — a malformed address that passed your own validation but failed on the receiving server's stricter check.

554 — Transaction Failed

554 is a broad rejection code with several common variants:

  • 554 5.7.1 Message rejected because of sender IP reputation — Your sending IP is on a blocklist
  • 554 5.1.8 Sender address rejected: domain not found — The sending domain has DNS configuration problems

Authentication-Related 5xx Errors

Gmail, Outlook, and Yahoo have significantly hardened authentication requirements in recent years. You'll now see 5xx errors like:

550-5.7.26 This message does not pass authentication checks (SPF and DKIM
both do not pass).

These errors tell you precisely what to fix: verify your SPF, DKIM, and DMARC records are correctly configured for your sending domain. If you're routing through a third-party SMTP relay, confirm that DKIM signing is active and that your SPF record includes the relay's sending IP addresses.

Where to Find Raw SMTP Codes

When your sending platform reports a bounce, the underlying SMTP code is usually available in the bounce details. Look for it in:

  • The bounce notification email sent to your return-path address
  • Your SMTP relay's delivery logs or dashboard
  • Webhook payloads if you've configured bounce event callbacks

Don't rely on generic "hard bounce" or "soft bounce" labels alone. The raw SMTP code tells you whether the problem is a bad address, a policy block, an authentication failure, or a rate limit — and each of those has a different fix. Lumping them together as "bounces" means you're treating the symptom rather than the cause.

Using Error Codes to Improve Your Setup

A consistent stream of 5.7.x errors across multiple recipients at the same ISP is a signal your authentication stack needs attention. A spike of 4.2.2 codes from one domain suggests that domain has a storage problem on their end — not something you can fix. A 554 with IP reputation language points directly to a blocklist issue requiring investigation and delisting.

The MailDog documentation maps how specific bounce codes appear in platform delivery reports. For persistent 5xx errors you can't diagnose, the support team can help work through the logs. Related guides on SMTP configuration and sender reputation are available on the MailDog blog.

Related articles