This Week in AWS: I discovered AWS SES (Simple Email Service) has a weird "feature" in Sandbox mode.

AWS Simple Email Service (SES)

SES is the Simple Email Service in AWS. It’s essentially a simple email relay that you can use for transactional emails (think confirmation emails, order receipts etc) or marketing emails (any general communication that isn’t initiated by a users specific action).  You can use it in place of things like Chimp Mail, Bronto Mail, Constant Contact, etc… however it’s a simple service that doesn’t come with all the bells and whistles of those other services provide.  So depending on your use case it may not fit your needs but for general email communication it works great.

Sandbox Mode

When you first provision the SES services, it's in "sandboxed" mode, limiting the daily number of emails to around 200 per 24 hours. It also forces you to register any email address to which you intend to send an email.  

If the email isn't registered (and verified), SES will throw an error when you attempt to send an email to that particular email address.

Registration makes sense as AWS doesn't want you to blast emails to anyone without a little due diligence and accountability. To get it out of "sandbox" mode and into "production" mode, you need to open a support ticket and provide detailed information about how you will handle bounced emails and complaints.  

They also want to know more about the site using it. If AWS doesn't like your responses, they will let you know, and you'll need to provide more information before they let you out of sandboxed mode.

In general, it's best to keep your lower environments in "sandbox" mode since this will keep you from accidentally blasting out emails to your customers during testing. I know I've received an occasional Ooops email from even large corporations apologizing for accidentally sending a "test" message.

Whitelisting Email Addresses

So, how do you whitelist an email address?  Registration is easy via the console, cli, or other means. You simply enter the email address and submit it.  AWS will send an email to that address and ask the recipient to verify that they want to receive messages from SES… it’s a lot like accepting the emails that SNS will send to you when you add yourself to an SNS topic subscription.  Once it’s verified SES will allow you to send emails to any of the verified emails.

However, there is a small catch, that I just discovered this week - it’s case-sensitive. So ericw(@) and EricW(@) are two different email addresses to SES.

This week in AWS, I learned that the sandboxed email addresses are case-sensitive.

During testing, some developers were getting message failures while others were not.  As it turns out some of the emails were registered (and verified) in SES using CamelCasing (e.g. EricW(@) but sending an email to ericw(@)

It’s one of those things that may not stand out right away, but after a little head scratching (and trial and error) I discovered the "feature".

I’m not sure if this is a "feature" or a "flaw", but just keep in mind that SES emails (in sandboxed) mode is Case Sensitive!


Feature Image: Photo by Onlineprinters on Unsplash