I have recently been questioned about how bounces can be harmful if a receiver doesn’t send back the right information. These discussions have been difficult for me because many people question why ESPs can’t just magically know if they are incorrect. Some receiving mail/message transfer agents (MTAs) do report the wrong thing and as such might invalidate a good email address for you, but on the flip side, the sender should never second-guess it since it could be a true invalidation. This is one of those age-old questions that has haunted the sending community for decades now. What do you do?
This is an interesting conversation to have with those who don’t understand the bounce standards. So we’re going to have a look at how bounces and MTAs work. No, this is not a show on the Discovery Channel for you “How Stuff Works” fanatics, nor is this a slap in the face to those who know how to type and hit “send” in a simple email client. This is more of a “behind the scenes” look at the inner workings of email itself.
I have broken bounces into four sections:
- How MTAs communicate.
- What is a “bounce”?
- How MTAs handle bounces.
- How bounces can affect a subscriber’s status.
Let’s start with how MTAs communicate. MTAs communicate and have “conversations” similar to human beings. For example, let’s say that you and I meet in a public place. We might shake hands or hug, one person says hi, the other says hi in return, etc. (it’s a back and forth conversation or interaction). It’s usually sane and polite, but sometimes it also can be met with “resistance” or a level of “cautiousness.”
Much like regular postal mail, email has two distinct parts – the “envelope” headers and the “message” headers. The envelope headers are used to distinguish where the message should be delivered. Let’s make a visual comparison:
123 Main St.
Dallas, TX 12345
.com = 12345 (Zip code)
domain = Dallas, TX (city and state)
jsmith = John Smith (recipient’s name or identity)
*If the domain (or portion after the @ sign) was subdomain.domain.com, the subdomain portion would equal 123 Main St. (or the street address); however, you will likely not see many email addresses in this format.
As you can see, these parts of an email address are used to tell the MTA where to send the message (which happens behind the scenes). The MTA will use domain name service (DNS) to determine:
- Does the domain exist?
- If so, who handles its mail (it might be handled internally, by their ISP, routed to their anti-spam provider, etc.)?
- If not, what do I do with this message (depending on the error code or bounce returned)?
- Am I allowed to deliver the message addressed to this user/subscriber/person?
The message headers are rolled into the actual message and include items such as from, to, subject, etc. Based on standards and formatting, our email client knows how to parse (or separate) these headers from the message body (much like if we received a letter in which the salutation, message body, etc. were all rolled together, we would know where things should be separated).
Getting back to the actual communication, the main difference between human and MTA conversations is that MTAs communicate in the form of numerical codes, which are (primarily) composed of three types:
- 2xx – Accepted
- 4xx – Temporary failure
- 5xx – Permanent failure
*It is important to note that these are three-digit codes. The “xx” portion is used to designate the other digits in the code. These numbers are designated to provide more granular information; however, we are only concerned with the first digit of the code at this time.
These codes serve to ensure the synchronization of requests and actions between the email client and the MTAs. Every request or command must generate exactly one reply. The first digit of the three-digit response code will determine the next action taken by the MTA. In the next column, I will expand on these codes, additional codes that can sometimes be used, and how industry experts are collaborating on making things better to reflect situations that are a common occurrence in today’s email environment.
And more next time on “What is a bounce?”