Amazon SES Blog

What Happens When You Reach Your Sending Limits?

by Wendy Giberson | on | Permalink | Comments |  Share

As you probably know, Amazon SES has a set of sending limits to control how many emails you can send per 24 hours (your daily sending quota) and how many emails you can send per second (your maximum send rate). Although these limits might seem, well, limiting, we have them in place to protect you. Many ISPs consider sudden spikes in email rate or volume from a particular sender or IP address to be indicative of someone trying to send spam. If you ramp up your email sending in a controlled manner, your emails are less likely to be flagged as spam and more likely to end up in your recipients’ inboxes.

You can increase your sending limits by sending high-quality emails at or near your current sending limits so that Amazon SES ramps you up gradually, or you can file an Extended Access Request if you need to increase your sending limits right away. Both methods are explained in the Amazon SES Developer Guide and the recent blog post on Managing Your Amazon SES Quota. However, today’s blog post is about what happens when you reach your limits, whatever those may be.

Ultimately, when you call Amazon SES to send an email after you’ve reached one of your sending limits, the call fails with a throttling error and the email is dropped. Amazon SES does not queue the emails and send them later. How your application receives the throttling error depends on whether it accesses Amazon SES through the API or the SMTP interface, as described below.

Amazon SES API

If you try to exceed your sending limits when you are accessing Amazon SES through the API using a programming language that uses exceptions, then your application will encounter a ThrottlingException:

  • ThrottlingException – Daily message quota exceeded
  • ThrottlingException – Maximum sending rate exceeded

If you are accessing the Amazon SES API through the Amazon SES HTTP interface directly, you will receive an HTTP status code of 400 with an error of type Throttling. (For other raw HTTP errors, see Common Errors.)

SMTP Interface

If you are accessing Amazon SES through the SMTP interface, your SMTP client will receive one of these errors:

  • 454 Throttling failure: Daily message quota exceeded
  • 454 Throttling failure: Maximum sending rate exceeded

However, the way you experience these errors depends on the SMTP client you are using. Different SMTP clients notify you in different ways, so we can’t tell you exactly what you will see. For example, Microsoft Outlook reports a “Send/Receive” error in the status bar at the bottom of the Outlook window, and if you read the fine print it mentions the 454 throttling failure. Other SMTP clients may not be so descriptive or report the error at all.

Sending To Multiple Recipients

What happens when you reach your sending limits when you send an email to multiple recipients in one call to Amazon SES? Before I get into it, I first want to emphasize that we do not recommend that you send an email to multiple recipients in one call to SendEmail at all. Really – it’s best not to do this. For example, if one of those addresses is on the blacklist, the entire email will be rejected and none of the recipients will get the intended email. Also, a message with multiple recipients may be indicative to ISPs of spam because the email can’t be personalized for each recipient. It’s much better to call SendEmail once for every recipient.

Anyway, regarding what happens when you hit your limits during a call to send to multiple recipients – first remember that normally, sending limits are based on recipients rather than on messages. For example, an email to five recipients counts as five against your daily sending quota. When you send to multiple recipients, though, if you have any emails remaining in your daily sending quota, then your API call (as long as other factors are ok, like none of the addresses are on the blacklist) will go through. Keep in mind however that the amount you have left in your daily sending quota is being continuously calculated by Amazon SES, so it’s not good to be hovering too close to this limit. If you find yourself frequently cutting it this close, submit an Extended Access Request.

It’s a similar story with your send rate quota – if, at the rate you are sending, you have any emails left in your send rate quota, you can send to multiple recipients. However, you will not be able to send further emails until you have built up enough quota again. For example, if your send rate quota is one message per second, and you send a message to five recipients at once, Amazon SES lets you do that. For the next five seconds, though, Amazon will return errors for all send attempts. Once five seconds have passed, you’ll have available quota and you will be able to send again. This way, emails with many recipients can get through, and they’ll get through at the overall rate allowed by the quota.

However, you probably don’t need to worry about the multiple-recipient case at all, because you are sending to one recipient at a time as we recommend, right? Amazon SES is designed to work seamlessly with your email application when you do so.

And Remember…

Plan ahead! Don’t wait until you hit your sending limits to think about extending them. Stay on top of where you are with respect to your quota by using the Amazon SES console or by calling the GetSendQuota API, and see the Amazon SES Developer Guide and Managing Your Amazon SES Quota for information about how to increase your limits.

Thank you for using Amazon SES!