Email Marketing: Soft vs Hard bounce

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.

Overview

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.

Hard Bounce

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.

Soft Bounce

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.

Overall

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.

One Response to “Email Marketing: Soft vs Hard bounce”

  • This is completely wrong – it directly contradicts all normal usage of the terms soft and hard bounces.

    What you are referring to as “hard bounce” and “soft bounce” are actually “smtp level rejections” and “asynchronous bounces” respectively.

    So… what are hard and soft bounces really?

    Industry standard terminology is that a “hard bounce” is a delivery attempt that failed, and will never succeed without manual intervention. They’re what are known as 5xx rejections when they happen during the SMTP transaction, as the error code is in the range 500-599.

    A “soft bounce” is a delivery attempt that failed, but for a transient reason. The delivery will be retried automatically by your smarthost. They’re often called 4xx rejections, as when they happen during the SMTP transaction the error code is in the range 400-499. These happen all the time, and you don’t need to worry about them, they’ll be handled by your smarthost (and eventually escalated to a hard bounce if the delivery keeps failing).