E-Mail Bounce Management, Simplified

In their November ClickZ column, Kirill Popov and Loren McDonald explained why processing bounces is important. Still, there’s plenty of confusion surrounding soft and hard email bounces.

Most commonly, a soft bounce is a temporary condition, such as “mailbox full.” A hard bounce is permanent, “user unknown” being one good example. These definitions make intuitive sense.

Many emailers recommend ignoring soft bounces. They only process hard bounces. This, too, makes intuitive sense. If the condition is indeed permanent, a soft bounce will eventually become a hard bounce. The recipient’s mailbox will be closed, and “mailbox full” will replace “user unknown.”

This all seems logical and straightforward. In the real world, things are more complex. There are too many scenarios under which the above definitions can lead to misidentification and unprocessed bounces.

Too Much Variability

Standard bounce code definitions were created in the early ’80s. Since then, the Internet and email have undergone enormous changes. Messages now are refused for reasons that simply didn’t exist back then. This has led to systems administrators and software authors creating their own bounce definitions and explanations.

Result: Identifying and categorizing bounces is far from an exact science. A great variety exists in even the most common bounce types. “551 not our customer” is clearly equivalent to “user unknown.” As are “550 Sorry, no mailbox here by that name” and “550 jdoe@company.com is not a valid user.” Bounce processing must identify all these — and many more.

Misleading Bounces

Worse, many domains and ISPs don’t adhere to existing standards at all. In some cases, they deliberately mislead or are vague about the reason for refusing a message. What do “554 mail server permanently rejected message,” “550 service unavailable,” “550 administrative prohibition — unable to validate recipient,” and “550 unrouteable address” really mean? Are these permanent failures or only temporary?

Some will even return “user unknown” when they believe a message to be spam. They do this to discourage spammers from continuing to use the address.

Incorrect bounce messages can be returned due to misconfiguration or system errors. If a recipient database fails all delivery attempts, it may return “user unknown” even when it’s a temporary circumstance.

When faced with bounce messages they can’t identify, some sending systems simply ignore them or treat them as soft bounces. Clearly, this isn’t an ideal solution.

Failure to correctly process bounces wastes resources, both yours and the ISPs’ to which you send. Worse, it can result in blacklisting at individual ISPs, even on public blackhole lists.

The Solution Is Simple

Some bounce reasons are unidentifiable. Those that can be determined can’t always be trusted. Given this, use repetition instead of categorization. It’s an extremely simple solution that doesn’t depend on categorizing bounces, so it isn’t prone to the above problems.

If an email address bounces consistently and repeatedly, consider it dead and stop mailing to it. It really doesn’t matter if the problem is deemed temporary or permanent. If the problem doesn’t go away, clearly it’s permanent.

At the Email Processing Industry Alliance Summit, email senders and major ISPs developed the following recommendation:

1. Bounce Handling Policy: senders should mark an address as “dead”, meaning the sender should remove the address from the delivery list and not attempt to deliver to the address until the sender has reason to believe that delivery rejection would not occur, if the following two conditions are both met:

  1. Three (3) consecutive delivery rejections have occurred; AND
  2. The time between the most recent consecutive delivery rejection and the initial consecutive delivery rejection is greater than fifteen days.

A sender should have the capability to manage delivery rejections differently between ISPs, whether based on previous agreements or explicit requests from these ISPs.

In other words, try the address three times over at least 15 days. If your messages are refused every time, treat the address as dead.

By following these guidelines, you can reduce the amount of processing required to handle bounces, improve accuracy, and ensure your email gets through to all recipients able to receive it.

Derek is off this week. Today’s column ran earlier on ClickZ.

Want more email marketing information? ClickZ E-Mail Reference is an archive of all our email columns, organized by topic.

Related reading