You hit "send," expecting your email to land smoothly in the recipient's inbox. But instead of a successful delivery, it bounces back with a cryptic, coded message. So, how do you know what went wrong?
This is where email bounce codes help—those cryptic numbers and messages hold the answer to why your carefully crafted email didn’t make it to its destination. Are they pointing to a minor glitch or signaling a major roadblock? Is the issue temporary or permanent?
In this article, we’ll learn to understand email bounce codes, exploring their meanings and the valuable insights they offer into email delivery challenges.
What are email bounce codes?
An email bounce code is a numeric message that explains why an email couldn't be delivered to the recipient's inbox. It consists of a code and a brief description that helps identify the cause of the delivery issue.
These codes also indicate whether the problem is temporary or permanent, allowing senders to troubleshoot these delivery problems. Take a look at what an email bounce code would look like in the image below.
Why are email bounce codes important?
Email bounce codes are important because they provide valuable insights into why an email failed to be delivered. By understanding these codes, senders can quickly identify whether the issue is temporary or permanent. This helps troubleshoot and improve email deliverability, ensuring messages reach their intended recipients. Additionally, addressing bounce codes can help maintain a good sender reputation, prevent future issues, and optimize email campaigns for better performance.
Traditional vs enhanced SMTP bounce codes
When emails bounce, the associated bounce codes fall into two main categories: Traditional SMTP bounce codes and Enhanced SMTP bounce codes. Each serves a specific purpose in helping email senders understand delivery failures.
1. Traditional SMTP bounce codes
Traditional SMTP bounce codes are basic three-digit numeric codes that indicate whether an email was delivered, temporarily rejected, or permanently failed. They are part of the SMTP (Simple Mail Transfer Protocol) standard, providing minimal yet functional information about email delivery issues. Here, it’s important to note that:
Codes beginning with 4 generally indicate a soft bounce, meaning the issue is temporary.
Codes beginning with 5 signify a hard bounce, indicating a permanent failure.
Here are a few examples of traditional bounce codes, what they mean and the kind of bounce they indicate:
Code | Meaning | Type of Bounce |
---|---|---|
421 | Receiving server temporarily unavailable. | Soft bounce |
450 | Mailbox unavailable or busy. | Soft bounce |
521 | Domain is not accepting emails. | Hard bounce |
550 | Requested mailbox not available. | Hard bounce |
While traditional SMTP bounce codes are helpful, they lack detailed explanations of the underlying cause of the delivery failure. For example, "550: Requested mailbox not available" tells you the email failed but not why the recipient's email is unavailable.
2. Enhanced SMTP bounce codes
Enhanced SMTP bounce codes, also known as Extended Mail System Status Codes, build upon traditional SMTP codes by offering greater clarity and specificity about why an email bounced. Introduced in RFC 3463, these codes follow a structured format that includes three digits separated by periods, providing specific details about the issue.
Structure of enhanced codes:
The first digit indicates the type of error (temporary or permanent).
2: Success (Message delivered)
4: Persistent temporary failure (Soft bounce)
5: Permanent failure (Hard bounce)
The second digit defines the category of the issue. (e.g., syntax, mailbox issues, or authentication problems). These categories help email senders quickly identify the root cause of the problem.
1: This indicates addressing issues or problems related to the recipient’s email address or the way it’s structured such as invalid email address, incorrect syntax or domain not found.
2: These arise when there’s a problem with the recipient's mailbox, such as being full, disabled, or not accepting mail.
3: These refer to failures in the recipient’s mail system, such as the server being down, overloaded, or unable to process messages due to system errors.
4: These are caused by delivery route problems, including server misconfigurations, routing loops, or failed network connections.
5: These result from security restrictions or invalid protocol commands, such as authentication errors, blacklisting, spam detection, or blocked IP addresses.
The third digit provides additional specificity about the exact nature of the failure.
If the second digit is 1( addressing issues), then:
3rd digit | Meaning | Description |
---|---|---|
1 | Invalid destination address | The email address doesn't exist or is incorrect. |
2 | Ambiguous destination address | The email address may match multiple entries, leading to confusion. |
3 | Bad syntax in destination address | The format of the email address is incorrect (e.g., missing "@" or domain). |
If the second digit is 2 (mailbox issues), then:
3rd digit | Meaning | Description |
---|---|---|
1 | Mailbox disabled | The mailbox is no longer active or has been deactivated. |
2 | Mailbox full | The recipient’s mailbox has exceeded its storage quota. |
3 | Mailbox not accepting messages | The mailbox is refusing new messages, possibly due to user settings or filters. |
If the second digit is 3 (mail system issues), then:
3rd digit | Meaning | Description |
---|---|---|
1 | Mail system temporarily unavailable | The server is down or unreachable at the moment. |
2 | Mail system overload | The recipient’s mail system cannot handle the volume of incoming messages. |
3 | Temporary mail server error | A non-permanent issue with the server's ability to process the message. |
If the second digit is 4 (network or routing issues), then:
3rd digit | Meaning | Description |
---|---|---|
1 | Failed DNS lookup | The DNS couldn't resolve the domain of the recipient’s email address. |
2 | Routing loop detected | An infinite loop occurred while trying to deliver the email, leading to failure. |
3 | Network timeout | A time-related issue, where the email couldn't be delivered due to network delays. |
If the second digit is 5 (security or protocol issues), then:
3rd digit | Meaning | Description |
---|---|---|
1 | Authentication failure | The recipient’s server requires authentication that the sender didn’t provide. |
2 | Blocked due to security filters | The email was rejected due to security reasons (e.g., spam filters, IP blacklisting). |
3 | Message rejected due to security settings | The email was rejected by the recipient’s server due to security protocols such as DKIM or SPF failure. |
So, if you have this error code: 5.1.1 - Bad destination mailbox address
Then:
The first digit '5' indicates a permanent failure
The second digit '1' indicates a general addressing failure.
The third digit, '1,' provides further details, specifying that the failure is due to a bad destination mailbox address.
Glossary of email bounce codes
Here is the list of traditional bounce codes in case of a soft bounce:
Bounce code | Explanation |
---|---|
420 | Network congestion or server issue |
421 | Receiving server temporarily unavailable |
422 | Recipient’s mailbox is full |
431 | Receiving server encountered an error |
432 | Recipient server is not accepting messages at the moment |
441 | Recipient's server is not responding |
442 | Connection was dropped |
446 | Maximum hop count was exceeded (internal loop) |
447 | Outgoing message timed out in the incoming server |
449 | A routing error occurred |
450 | Mailbox unavailable |
451 | Local processing error temporarily |
452 | Recipient's mailbox full temporarily |
471 | Temporary error in the local server (additional information provided) |
Now, let’s take a look at all the SMTP bounce codes you may come across in case of a hard bounce:
Bounce code | Explanation |
---|---|
510/511 | Bad email address; check the address |
512 | DNS error; domain could not be found |
515 | Destination mailbox address invalid |
517 | Problem with the sender's mail attribute |
521 | Domain is not accepting mail |
523 | Server limit exceeded; message too large |
530 | Access denied; authentication required |
531 | Mail system full |
541 | No response from host (might be due to anti-spam filter) |
550 | Mailbox unavailable/Not found |
551 | User not local; please try forwarding |
552 | Exceeded storage allocation |
553 | Mailbox name is invalid |
554 | Transaction failed; recipient server suspects spam or your IP is blacklisted |
Like we explored earlier, the enhanced SMTP follows a slightly different format than the traditional SMTP codes. Let’s take a look at the bounce codes:
Here’s a list of enhanced SMTP soft bounce codes:
Bounce code | Explanation |
---|---|
4.1.1 | The recipient's email address could not be found or is temporarily unavailable. |
4.2.2 | The recipient's inbox has reached its storage limit. |
4.3.2 | The receiving server is too busy or down at the moment. |
4.4.1 | There is a temporary issue with the network connection between servers. |
4.7.1 | The message is temporarily delayed due to server policy or security settings. |
Here’s a look at the various bounce codes you might encounter in the case of a hard bounce:
Bounce code | Explanation |
---|---|
5.0.0 | Undefined error, generic message |
5.1.0 | Other address status issue |
5.1.1 | Bad destination mailbox address (email address does not exist) |
5.1.2 | Bad destination system address |
5.1.3 | Bad destination mailbox address syntax |
5.1.4 | Destination mailbox address ambiguous (e.g., multiple matches) |
5.1.6 | Mailbox has moved |
5.1.7 | Bad sender’s mailbox address syntax |
5.1.8 | Bad sender’s system address |
5.2.0 | Mailbox unavailable |
5.2.1 | Mailbox disabled, full, or not accepting mail |
5.2.2 | Mailbox full (storage allocation exceeded) |
5.2.3 | Message length exceeds administrative limit |
5.3.0 | Other or undefined mail system status |
5.3.1 | Mail system full (server storage limit exceeded) |
5.3.2 | System not accepting network messages |
5.3.4 | Message too big for system |
5.4.0 | Other network or routing status issue |
5.4.1 | No answer from host (recipient server not responding) |
5.4.2 | Bad connection |
5.4.3 | Routing server failure |
5.4.4 | Unable to route (invalid address or configuration issue) |
5.4.6 | Routing loop detected |
5.4.7 | Delivery time expired |
5.5.0 | Other or undefined protocol status |
5.5.1 | Invalid command (command not recognized by recipient server) |
5.5.2 | Syntax error (parameters not recognized) |
5.5.3 | Too many recipients |
5.5.4 | Invalid arguments for command |
5.6.0 | Other or undefined media error |
5.6.1 | Media not supported |
5.6.2 | Conversion required but not supported |
5.6.3 | Conversion required but prohibited |
5.7.0 | Other or undefined security status |
5.7.1 | Delivery not authorized, message refused |
5.7.2 | Mailing list expansion prohibited |
5.7.3 | Security conversion required but not possible |
5.7.4 | Security features not supported |
5.7.5 | Cryptographic failure |
5.7.6 | Cryptographic algorithm not supported |
5.7.7 | Message integrity failure |
Conclusion
Email bounce codes may seem like a jumble of numbers and technical jargon, but they hold the answers to improving your email deliverability. By understanding what these codes mean and how they’re categorized, you can pinpoint exactly why an email didn’t reach its destination—whether it’s a temporary hiccup or a permanent roadblock.