Skip to Main Content
Bounce reference

SMTP error codes, explained and fixed

Match the code in your bounce message to the exact meaning, who's at fault, and the fix. No guessing from cryptic server-speak.

How to read a bounce message

Every bounce carries two codes. The three-digit reply code gives the verdict: 5xx is permanent (the message was refused and will not be retried), while 4xx is temporary (the message is deferred and the sending server keeps retrying, usually for a few days, before giving up).

The dotted enhanced status code (like 5.7.26) is the diagnosis. Its middle digit names the subject: .7. is security and policy (authentication, reputation, blocklists), while .1. is addressing and .2. is the mailbox itself. Find your code in the table below; each row links to the verbatim provider messages, the ranked causes, and the step-by-step fix.

Comparison of 5xx permanent failures, which never retry and need a fix plus a manual re-send, against 4xx temporary deferrals, which the sending server retries for roughly two to five days.

Permanent failures (5xx)

The receiving server refused the message. It will not retry: fix the cause, then re-send.

Temporary failures (4xx)

The message is deferred, not rejected. The sending server retries, but the underlying cause usually still needs fixing.

Bounce-code FAQ

What's the difference between a 4xx and a 5xx SMTP error?

The first digit is the verdict. A 5xx code is a permanent failure: the receiving server refused the message and it will not be retried; you have to fix the cause and re-send. A 4xx code is a temporary failure: the message is deferred and the sending server keeps retrying automatically, typically for 24–72 hours before it gives up and bounces.

What do the three extra numbers (like 5.7.26) in a bounce mean?

That's the enhanced status code (RFC 3463). The first digit repeats the class (5 = permanent, 4 = temporary), the second names the subject area (7 = security or policy, 1 = addressing, 2 = mailbox), and the third pinpoints the specific condition. It's usually more precise than the three-digit reply code: 550 alone says 'refused', while 5.7.26 says 'refused because the mail was unauthenticated'.

How do I tell whether a bounce is my fault or the recipient's?

Read the enhanced code and the text. Authentication and policy codes (5.7.x) almost always point at the sender: SPF, DKIM, DMARC, or reputation. Addressing and mailbox codes (5.1.1 nonexistent user, 5.2.2 mailbox full) point at the recipient. Temporary 4xx deferrals can be either: sender rate limits and reputation throttles, or a receiving server having a bad day.

Why does the same error code look different from Gmail, Microsoft, and Yahoo?

Providers write their own human-readable text after the numeric codes, and some add proprietary sub-codes (Microsoft's 5.7.509, for example). The numbers are the standard part: match the reply code and enhanced status code first, then use the provider's wording to identify the exact variant.