This is a common question and one that it seems many people don’t fully understand. So, we’ll delve into this topic in-depth in this article.
A bounce, in general, is when an email is rejected for delivery for some reason. The reason is usually apparent in the description of the bounce type. Bounces are then broken out into two other classifications: soft and hard. Each of these types of bounces is used by various remote sites to better manage their email infrastructure. Even though there are two different types, a bounce is a bounce is a bounce. In other word, the email was rejected for some reason.
We’ll start by examining the hard bounce first. This type of bounce happens live during the attempt to deliver the email to the remote server. Email delivery is defined by using the SMTP protocol. This protocol is a series of commands that tells a remote mail server what to do, who to delver the email to and what happens next. In the process of giving these commands to the remote server, the server could return with an error code rejecting the email. For example, a 550 error code describes when a user’s account does not exist or is otherwise permanently not available. If, during the SMTP transaction, we receive a 550 error code number, the connection is closed gracefully and we will document the 550 error message in the database for our client.
So, a hard bounce is a bounce that describes when our sending server receives an error code number describing a temporary or permanent failure situation. Temporary failures are usually retryable at a later time. Permanent failures cannot be retried later.
A soft bounce describes an offline bounce. For example, our delivery server will connect to the remote mail server and, again, use the SMTP dialog to deliver a piece of mail. This time, the mail is accepted without any errors presenting. However, simply because a piece of email is accepted for delivery, doesn’t necessarily mean it will ultimately be delivered.. and there are many reasons for this situation. As a result, a mail delivery failure could be returned between 1 minute and many days later from the original delivery. These failure emails usually say something like MAIL DELIVERY FAILURE or DELIVERY FAILURE. These types of messages usually arrive from the postmaster or a similar type address at the delivery site. These messages usually describe the failure scenario and the reason for the failure.
In many cases, the soft bounce uses the same error codes as a hard bounce. In this case, though, instead of receiving a direct error code from the mail server, we receive a piece of mail back from the mail server at a later time describing a delayed email delivery failure.
Processing hard vs soft bounces
Boomerang processes both types of bounces and applies them to our client’s databases. Hard bounces are immediate failures where soft bounces are usually delayed.
Why hard vs soft?
A hard bounce takes immediate processing load way from the mail server. This overhead of processing the commands can take its toll on the processing capabilities of a machine. So, some sites like AOL choose to accept all mail, process it offline and send bounces back as soft bounces. This allows AOL to process the failures during free cycles rather than having to make decisions at times when the system may not be able to cope. Other reasons for soft bounces can be due to the use of intermediate mailers. For example, some sites contract to have their mail scanned or spam filtered before be delivered to the final destination. As a result, these systems may not be the immediate authority for that domain. So, they accept all mail, process it, and pass it along to the authoritative system for final processing. The final system will then create soft bounces as necessary.
Spam filtering systems can also utilize soft bounces over hard bounces. It all depends on how the system was designed.
Either technique works to report failures. Neither is ‘better’ than the other for reporting. However, hard bounces have the benefit of immediate responses where soft bounces can be delayed. Soft bounces can be somewhat harder to process depending on how the soft bounce is formatted. If the soft bounce is formatted incorrectly or is missing vital information (some data has been redacted), it may be impossible to process some soft bounces.
Note: This article is geared toward Boomerang.com‘s service practices. However, other ‘industry standards’ suggests that the SMTP return codes 4xx and 5xx are termed ‘soft’ and ‘hard’ bounces, respectively. While this terminology may have been used in the past, Boomerang doesn’t use this terminology as it too narrowly focuses on only 4xx and 5xx errors. In fact, there are far too many spam devices today that misclass permanent failures as 4xx errors and also 5xx errors as temporary/transient failures when looking at the extended codes. Further, there are other ways of failing that aren’t covered and are still considered a bounce, like simply just dropping the connection without any return code. This older ‘standard’ terminology does not take into account today’s rampant misclassifications nor does it take into account other error codes outside 4xx and 5xx (like the x.x.x extended error codes) that may also result in a permanent or transient failure (bounce). Boomerang, instead, terms and classifies 4xx and 5xx failures, in addition to other determined failures, as temporary/transient failures or permanent failures. Boomerang’s definition of a ‘bounce’ is what you see above as it broadly covers all failure types and how those types are handled. This article is also geared towards Boomerang customers. If you are a customer of another email service provider, you should contact them to find out how they term and class their failures.