SMTP Error Codes Explained: What Each One Means and How to Fix It Print

  • smtp, error codes, troubleshooting, deliverability
  • 0

When an email doesn't reach its destination, the receiving mail server almost always tells you why in the form of an SMTP status code. These codes are standardized three-digit numbers, and once you know how to read them, diagnosing a bounced or delayed message becomes much less mysterious.

How to read a status code

The first digit of any SMTP code tells you the general outcome:

  • 2xx — Success. The action was completed.
  • 3xx — The server accepted the command and is waiting for more input (you'll mostly see this mid-transaction, not as an error).
  • 4xx — A temporary failure. Retrying later will often work.
  • 5xx — A permanent failure. Retrying without changing anything will produce the same result.

4xx: temporary errors

These indicate a transient problem on the receiving server's end, and most mail servers will retry automatically:

  • 421 — The service is temporarily unavailable, often due to server load or a scheduled restart.
  • 450 — The mailbox is temporarily unavailable, commonly caused by greylisting or a full inbox.
  • 451 — A local processing error occurred on the receiving server.
  • 452 — The server has run out of storage to accept the message right now.

If the same 4xx code keeps recurring across several retry attempts, don't just wait it out. Check your domain's SPF and DKIM configuration, since a misconfigured authentication record can produce intermittent failures that look like a temporary server issue.

5xx: permanent errors

These require you to fix something before sending again — retrying the identical message will not help:

  • 500 — Syntax error or an unrecognized command.
  • 501 — Invalid parameters, often caused by a malformed email address.
  • 502 — The server doesn't support the command that was sent.
  • 503 — Commands were sent out of the expected order, or authentication is required first.
  • 550 — The most common permanent failure: the mailbox doesn't exist, or the message was rejected outright, frequently due to a reputation problem rather than a typo.
  • 551 — The recipient is not local to that server.
  • 552 — The recipient's mailbox has exceeded its storage limit.
  • 553 — The mailbox name isn't allowed, usually a formatting issue.
  • 554 — The transaction failed outright and the message was refused.

General troubleshooting steps

  1. Note the exact code and message text from the bounce notification.
  2. Confirm the recipient address is spelled correctly.
  3. Check your domain's SPF, DKIM, and DMARC records for errors.
  4. If it's a 4xx code, wait for at least one retry cycle before assuming there's a real problem.
  5. If it's a 5xx code, fix the underlying cause before attempting to resend.

Common questions

Should I keep resending after a 4xx error? No manual action is usually needed — your mail server will retry automatically for a period of time. If it persists past that window, investigate your authentication setup.

Is a 550 always about a wrong address? Not always. It's also commonly used when the receiving server rejects the message due to spam filtering or a reputation issue, even if the address is valid.

Where do I find the exact code for my bounced email? Check the bounce or non-delivery notification your mail server sent back — it will include the numeric code and a short description from the receiving server.


Was this answer helpful?

« Back