A Better Way to Handle Rejection

The Simple Mail Transfer Protocol (SMTP) specification lays out the rules for moving electronic mail across the internet, from one host to another. Although the specification runs to ninety-four pages, SMTP really does earn the “Simple” in its name; at its fundamental level, it contains just a few basic commands and numeric responses to those commands. Any host responsible for sending or receiving email will have a full implementation of the SMTP rules in its software, and will be able to perform its role in each SMTP transaction as expected.

According to the specification, the responses to each SMTP command will begin with a three-digit number, and most of these responses will start with 2, 4, or 5. The easiest way to interpret these response codes is as follows:

  • 2xx – Successful command completion
  • 4xx – The command failed, but might succeed at a later time, so the client should feel free to retry the command later
  • 5xx – The command failed, and will not succeed at a later time unless some condition changes

A basic implementation of SMTP would likely react to 4xx replies by holding the messages for one or more retries at later intervals (commonly called “queueing”), while 5xx replies would mean that the message was returned to its sender. These are perfectly valid reactions, fully compliant with SMTP, and you can be sure that the Momentum(™) software that forms the basis of our SparkPost product offering is designed to react in just these ways.

SparkPost’s Adaptive Delivery®

What sets SparkPost apart is an additional feature built into our software, a feature that we call Adaptive Delivery. Beyond the three-digit codes, SMTP allows for additional numeric codes and/or human-readable text in replies. While this additional information is not required, nearly all SMTP implementations out there take advantage of this option to communicate in more detail to the sender as to why an SMTP command failed. With Adaptive Delivery, we offer the ability to ingest the information from these replies and automatically tailor our system’s sending behavior in response to these signals. These behavior adjustments might involve slowing down delivery rates, throttling back on the number of connections we open to a particular domain, or even suspending delivery for a period of time in response to a serious issue, giving us time to address the issue before retrying email delivery. Regardless of the adjustment taken, they’re all done with the idea of giving your mail a better chance to get delivered, either immediately or eventually.

Our Adaptive Delivery (AD) feature is a rules-based engine that undergoes constant tuning and training. Every day, SparkPost employees monitor customer traffic on our platform, looking for any delivery issues that might be present. Once we identify an issue we’ll dig into it to learn the cause; if we can write a rule for AD to better handle the issue, we will. These rules are applied at the receiving domain level so any rule we write will apply to and benefit all of our customers, not just the one having the issue at the time the rule was written.

As stated above, the main purpose behind AD is to give your mail a better chance of being delivered and its rules are designed to do this in two key ways:

  • To comply with mailbox providers’ throughput limits, thereby providing one data point toward establishing and maintaining a reputation as a good sender
  • To suspend delivery for a period of time and allow for mitigation of any block or other issue that would otherwise result in mail bouncing

These functions allow for extending the window on delivery of messages that might otherwise not make it to their destination, and because they happen automatically, no action is required either by our customers or by SparkPost personnel, meaning that the adjustments can happen any time of the day or night.

Our SparkPost platform, backed by our Momentum(™) software, is a world-class mail service, one that’s capable of delivering mail to its destination at astonishing rates; however, sometimes those rates are faster than a given mailbox provider will accept, and so AD gives our platform the ability to adjust to their rates, rather than attempt (and fail) to overwhelm them. Sometimes, good email delivery isn’t just a matter of following best practices; being a good neighbor matters too. With Adaptive Delivery, SparkPost will be that good neighbor and put its best face forward to get your mail delivered.