Not all e-mails that are sent are actually delivered. When an e-mail can not be delivered it results in a so called bounce message detailing why the e-mail was not delivered.
Heysender automatically handles these bounces for you. The recipient may be added to a suppression list in Heysender and you may receive a notification in the form of a webhook when a bounce happens.
Hard and soft bounces
There are two types of errors when sending e-mails: Temporary errors and permanent errors. Temporary errors result in soft bounces and permanent errors result in hard bounces.
A temporary error might be an inbox with no space left for new e-mail while a permanent error might be an e-mail address belonging to a person no longer employed in an organisation.
Heysender and bounces
The software Heysender uses to send e-mail groups bounces in several categories each with their own bounce code. The software works with three types of bounces, soft, hard and other – the last one being used for bounces that can not be categorised as either soft or hard.
0 – Non-bounce other | This occurs when the bounce processor receives an email that it cannot classify as a bounce or any other non-bounce code (e.g. auto-reply) |
10 – Bad email address hard | This is a hard bounce where we were able to positively identify that delivery attempts to this email address should no longer be attempted. This usually indicates that the requested mailbox does not exist. |
20 – Temp failure – General soft | This is a soft bounce which indicates a possibly temporary failure in delivery of the message. The email address itself may or may not be invalid. This is often the result of ambiguous messages such as a mailbox being “inactive” or “unavailable”. |
21 – Temp failure – DNS Failure soft | This is a soft bounce caused by a failed DNS lookup. This can be caused by failures in DNS lookup either by Heysender itself or subsequent relay servers. |
22 – Temp failure – Mailbox full soft | This is a soft bounce caused by the recipient’s mailbox or quota being full. |
23 – Temp failure – Message size too large other | This is an other bounce caused by the destination email server rejecting the message due to its size. |
24 – Temp failure – Missing MX record soft | No MX records were found for this recipient. |
29 – Temp failure – Unable to connect soft | This is a soft bounce where we were unable to connect to the remote server. If there are many bounces with this code for a single domain, this usually means that the domain is not working or that the domain is blocking your mail server. |
30 – Bounce with no email address other | This is an other bounce caused by the bounce message itself containing no email address. |
40 – General bounce other | This is an other bounce that could not otherwise be categorized. Heysender positively identified that this is a bounce message, but was unable to determine a more specific category. |
50 – Mail block – General other | This is an other bounce caused by the remote server rejecting the message for reasons that are not otherwise covered by a more specific “Mail block” category. |
51 – Mail block – Known Spammer other | This is an other bounce caused by the remote server rejecting the message because it considers the sender to be a spammer. These bounces are not specific to the individual message, but rather the sending server itself. This can be caused by listing on various public or private block lists. |
52 – Mail block – Spam detected other | This is an other bounce caused by the remote server rejecting the individual message content as spam. |
53 – Mail block – Attachment detected other | This is an other bounce caused by the remote server rejecting the individual message due to its inclusion of one or more attachments. |
54 – Mail block – Relay denied other | This is an other bounce caused by the remote server refusing to serve as a relay for delivery of the message. |
55 – Mail block – SPF/DKIM/DMARC other | This is an other bounce caused by the remote server refusing delivery of the message due to SPF, DKIM, or DMARC policies. Resolving the specific complaint in the bounce message can often improve deliverability. |
59 – Mail block – Unable to connect other | This is an other bounce where we were unable to connect to the remote server (much like code 29 ), however, this is to a large domain name, so we are reasonably confident that the domain name did not cease to exist, but that they are blocking all connections from your IP address. Some large domains, when blacklisting, will completely block your IP from connecting to their servers. |
60 – Auto-reply other | These are messages received by the bounce processor that were generated by an auto-reply system such as a vacation autoresponder. These are not actual bounces. |
70 – Transient bounce other | This is an other bounce caused by a temporary delay in message transmission. The remote server will usually continue trying to deliver the message for a limited period of time. |
90 – Unsubscribe request hard | This is a hard bounce caused by a request to unsubscribe from the mailing list. |
100 – Challenge response other | This is an other bounce caused by the remote server issuing a challenge-response probe. Heysender does not respond to these challenges. |
Heysender only categorises e-mails as hard bounces when the error is seen as permanent. Even DNS errors (like using gmail.co instead of gmail.com) will result in a soft bounce since this might also be a temporary error. For instance a domain without MX records (defining which server e-mail to the domain should be sent to) might be a permanent error (the domains is not meant to receive e-mail) or a temporary error (caused by a system administrator mistyping the DNS records).
Thus, most bounces are categorised as soft. Heysender will automatically add e-mails that bounce multiple times to the suppression list making sure that e-mails are removed if an error turns out to be permanent.