How to receive email with Amazon SES

Updated

Short answer

To receive email with Amazon SES, verify your domain in SES, point its MX record at inbound-smtp.<region>.amazonaws.com, and create an active receipt rule set with a rule that saves messages to an S3 bucket SES can write to. That gets mail into S3 as raw files, not into an inbox. The fastest way to do all of it, and to get an inbox to read the mail in, is HelloBox: launch one CloudFormation stack from HelloBox and it configures receiving for you.

Setting up SES receiving by hand

Email receiving is only offered in some AWS regions, so check that your region supports it before you start. Then:

  1. Verify the domain. In the SES console, create a domain identity and add the DKIM records it gives you to your DNS.
  2. Create an S3 bucket for incoming mail, with a bucket policy that lets ses.amazonaws.com put objects, limited to your account.
  3. Create a receipt rule set and make it active. Each region has one active rule set per account.
  4. Add a receipt rule for your domain or specific addresses, with an S3 action that writes to your bucket. Add a Lambda or SNS action if your app needs to know when mail arrives.
  5. Add the MX record to your domain: 10 inbound-smtp.us-east-1.amazonaws.com, with your own region in place of us-east-1.
  6. Send a test message and check that a new object appears in the bucket.
yourdomain.com.  MX  10 inbound-smtp.us-east-1.amazonaws.com

The SNS action alone only carries messages up to 150 KB, which is why most setups store mail in S3 and notify separately.

What you have at the end

A bucket full of raw MIME files. To actually use the mail, you still need to parse it, thread replies together, show attachments safely, filter spam, and send replies from the same address with correct In-Reply-To headers. Most people stop here and forward everything to a personal mailbox, which breaks SPF and DMARC unless the forwarder rewrites the sender.

The two-click way: HelloBox

HelloBox does every step above for you, then gives you the inbox on top.

  1. In HelloBox, choose Connect Amazon SES and pick your region.
  2. Press Open AWS, then Create stack in the CloudFormation console.
  3. HelloBox verifies the domain, creates the receiving bucket and receipt rule, subscribes to delivery events, and adds the MX record if your DNS is in Route 53. Otherwise it shows you the exact record to add.

Mail then arrives in a threaded inbox you can share with your team, with spam filtering, sender authentication checks, rules, search and replies sent through your own SES account. HelloBox tells you if a domain isn't ready to receive.

Frequently asked questions

Can Amazon SES receive email?
Yes, in regions that support email receiving. You add an MX record pointing to SES and receipt rules that store or forward each message. SES doesn't provide an inbox to read it in; HelloBox adds one.
What MX record does Amazon SES use?
10 inbound-smtp.<region>.amazonaws.com, for example 10 inbound-smtp.us-east-1.amazonaws.com. Use the region where you set up receiving.
Where does SES put received email?
Wherever your receipt rule says: usually an S3 bucket as raw MIME files, optionally with a Lambda function or SNS notification. HelloBox reads from that bucket and shows the mail as conversations.
Is there a faster way to set up SES receiving?
Yes. HelloBox sets up SES receiving through a CloudFormation stack you launch in two clicks, including the bucket, receipt rule, delivery events and, with Route 53, the MX record.