Articles in this section

Understanding Bounces

Bounces, or mail delivery failures, can occur for a multitude of reasons, and understanding whether or not a bounce was preventable can provide insight into improving your overall email deliverability. This guide will help illustrate how bounce responses are relayed from receivers and how MessageGears helps classify those bounces for further processing. 

A bounce response from a mailbox provider typically includes 3 key elements that help identify the cause of the rejection: a basic SMTP status code, an enhanced SMTP status code, and a text description. Let's take a look at each of those items and the data they provide. 

SMTP Status Code

SMTP status codes are 3 digits in succession and provide basic classification for delivery status:

  • 2xx: mail was successfully handed off to the receiving mail server. 250 ok is the typical response when a message is delivered to the intended server.

  • 4xx: mail was rejected based on a temporary condition. These are also commonly called temp fails, deferrals, transient bounces, or soft bounces. The general assumption is that these bounces can be retried for the standard retry period (up to 24 hours). If, at the end of the retry window, the mail remains undelivered, it is recorded in your data as a bounce. Because the condition causing the bounce is believed to be temporary, failure of a single message to be delivered doesn't necessarily prohibit future attempts at sending to that address. 

  • 5xx: mail was rejected due to a permanent condition. When a 5xx bounce is received, our servers attempt no further retries and the mail is categorized as a bounce. These are often referred to as hard bounces. In most cases, addresses that receive this type of bounce should be suppressed from future mailings; however, immediate suppression is not always recommended.  

Enhanced SMTP Status Code

While basic SMTP status codes provide a limited number of status options, a newer standard allows for slightly more detailed response codes. These function similarly to the basic codes, but with a bit more structure to provide more detailed information about the delivery status. Each of the three digits is separated by a period and has its own set of potential values. For the first digit, the options are essentially identical to the codes above:

  • 2.X.X indicates the mail was successfully handed off.
  • 4.X.X means the mail was rejected due to a temporary issue.
  • 5.X.X means the mail was rejected due to a permanent or persistent issue. 

For the second digit, values 0-7 each carry a unique status identifier as follows:

  • X.0.X indicates an "undefined" status. No additional details are available for this code. 
  • X.1.X indicates an addressing error. These may be on the sending or receiving end, and could include a poorly formatted or nonexistent address. 
  • X.2.X is a mailbox status error. This may mean the specific mailbox is temporarily or permanently disabled, or some other unreachable status. These errors are almost exclusively on the receiver's end and must be addressed by the mailbox owner.  
  • X.3.X is a mail system status error. While the mailbox error indicates an issue with the specific user's mailbox, this code refers to a larger system issue. These issues exist on the receiving end and typically must be resolved by an administrator of that receiving network. 
  • X.4.X indicates an issue with general network or routing status. These can include DNS issues or other routing failures. Issues may be isolated to a single receiver network or may exist on some intermediary network between the sender and receiver. 
  • X.5.X refers to a protocol status error. These are fairly vague and could include a wide range of issues, typically resulting from implementation errors or an unreliable connection. 
  • X.6.X is caused by message content or associated media within the message content. Errors in translation, character encoding mismatches, or unsupported media types are common factors in these bounces. Resolving these bounces may require cooperation to ensure all message content generated by the sender is in a format supported by the receiver. 
  • X.7.X indicates a security or policy status failure. These include message filtering at the user or network level, as well as errors in cryptographic operations. These bounces may also require a collaborative effort to resolve. 

The third digit in these enhanced codes indicates more specifically what caused each error. While there are too many potential codes to include in this article, you can find the full list on the IANA's website.

Bounce Text Description

In addition to the status codes outlined above, most bounce responses also include some human-readable descriptive text intended to relay the cause of the bounce. Each receiving mail server must be configured to send these responses, and there is no definitive standard in place for the industry. As such, some responses are helpful and prescriptive, others may be a bit more vague, and still others include little if any useful text. 


Bounce Categories

When a message you send through MessageGears is rejected, our systems attempt to parse the bounce into one of several categories designed to aid you in managing bounced addresses. A set of internal rules analyzes the data included in the SMTP responses referenced above and classifies each bounce as one of the following:

Please remove all bounces of type 10 and 30. Failure to do so may negatively impact your inbox performance with the various ISPs.

Category Category Code Description
Undetermined 1 The response text could not be identified.
Invalid Recipient 10 The recipient is invalid.
Soft Bounce 20 The message soft bounced.
DNS Failure 21 The message bounced due to a DNS failure.
Mailbox Full 22 The message bounced due to the remote mailbox being over quota.
Too Large 23 The message bounced because it was too large for the recipient.
Timeout 24 The message timed out.
Admin Failure 25 The message was failed by configured policies.
Generic Bounce: No RCPT 30 No recipient could be determined for the message.
Generic Bounce 40 The message failed for unspecified reasons.
Mail Block 50  The message was blocked by the receiver.
Spam Block 51 The message was blocked by the receiver as coming from a known spam source.
Spam Content 52 The message was blocked by the receiver as spam.
Prohibited Attachment 53 The message was blocked by the receiver because it contained an attachment.
Relay Denied 54 The message was blocked by the receiver because relaying is not allowed.
Transient Failure 70 Message transmission has been temporarily delayed.
Invalid Email Syntax 110 The message has a malformed/invalid email address.
Hardbounce Suppression 130 The message is a known-bad email address and has hard bounces with a category 10 or 30 in the past. It was suppressed from sending to protect IP reputation with the ISP.
Unsubscribe Suppression 131 The recipient of the message has unsubscribed from a message from your account in the past. It was suppressed from sending to protect your sending reputation.
Fbl Suppression 132 The recipient of the message has filed a spam complaint with your account in the past. It was suppressed from sending to protect your sending reputation.
Complainer Suppression 133 The recipient of the message is a known complainer. It was suppressed from sending to protect your sending reputation.
Domain Suppression 134 The recipient domain is not allowed. It was suppressed from sending to protect your sending reputation.
Role Suppression 135 The recipient address is not allowed. It was suppressed from sending to protect your sending reputation.
Admin Suppression 136 The recipient was suppressed via a suppression list attached to your campaign.
Was this article helpful?
0 out of 0 found this helpful



Article is closed for comments.