Q: Why should I use Amazon SES to receive emails?
By using Amazon SES, you can avoid the costly, complex task of creating your own email-receiving infrastructure. Amazon SES does not require a minimum commitment, and you can easily configure it to process your incoming messages with a variety of AWS services. You can have Amazon SES deliver messages to an Amazon Simple Storage Service (Amazon S3) bucket, trigger your code via an AWS Lambda function, publish notifications to Amazon Simple Notification Service (Amazon SNS), integrate with Amazon WorkMail, or bounce messages. If you choose to have your mail delivered to an Amazon S3 bucket, Amazon SES can encrypt the messages you receive using master keys managed in AWS Key Management Service (AWS KMS). Amazon SES also publishes metrics to Amazon CloudWatch.
Q: What are some common use cases of Amazon SES email receiving?
When you receive email with Amazon SES, you can develop software solutions such as email autoresponders, email unsubscribe systems, and software that generates customer support tickets from incoming emails.
Q: Is Amazon SES typically used by organizations or individuals?
Although anyone who owns a domain can receive email with Amazon SES, organizations tend to use Amazon SES more often than individuals do. This is because organizations typically manage multiple email addresses, and they usually have more developers to build an application that processes raw emails for display to end users.
Q: How does Amazon SES email receiving work?
After you successfully set up email receiving with Amazon SES, when someone sends an email to an email address in your domain, the email is routed to Amazon SES. Based on rules you set up, Amazon SES accepts or rejects the email on your behalf. You can set up Amazon SES to pass you the email in one of two ways: by putting the email in an Amazon S3 bucket, or by sending you an Amazon SNS notification containing the email content. You can also configure Amazon SES to trigger an AWS Lambda function, drop or bounce messages you don’t want to receive, or integrate with Amazon WorkMail.
Q: Does Amazon SES provide a way for me to read the emails I receive?
No. Amazon SES passes you the raw, unformatted emails via Amazon S3 or Amazon SNS. You retrieve and process the emails using your own code. Emails are typically in Multipurpose Internet Mail Extensions (MIME) format. To decode MIME, you must use your own application.
Q: Do I have to own a domain to receive email with Amazon SES?
Yes. Even if you own an email address, you cannot use Amazon SES to receive email for that address unless you own the entire domain. You cannot, for example, configure Amazon SES to receive email for an email address in Gmail, Outlook, or any other domain that you don’t own.
Q: Can I use Amazon SES to receive email for my domain even if the domain is not registered with Amazon Route 53?
Yes. You can receive email with Amazon SES for any domain that you own, but the set-up procedure is easier if your domain is registered with Amazon Route 53. To use Amazon SES to receive email for your domain, you must add TXT records and MX records to your domain’s DNS server. If your domain is registered with Amazon Route 53, Amazon SES can add the records for you. If your domain is registered with another DNS provider, Amazon SES provides the records to you during the domain verification procedure, and you must manually add the records to your domain’s DNS server. The procedure to manually add the records to your DNS server depends on your DNS provider's user interface.
Q: How do I configure Amazon SES to handle the emails it receives on my behalf?
You use the Amazon SES console or API to set up receipt rules. A receipt rule enables you to specify what you want Amazon SES to do with mail it receives for one or more recipients in your domain. The receipt rule consists of a condition and an ordered list of actions. If the recipient to which the incoming mail is addressed matches a recipient specified in the condition, then Amazon SES performs the actions specified in the receipt rule. Receipt rules are grouped into receipt rule sets. A receipt rule set is an ordered collection of receipt rules that specify what Amazon SES will do with mail it receives across all of your domains. You can define multiple receipt rule sets for your AWS account, but only one receipt rule set is active at any time.
Q: How will I know when I receive an email?
When you set up a receipt rule, you can choose to have Amazon SES send you an Amazon SNS notification when you receive an email. In this simple project, we do not enable that option.
Q: Is there a size limit on the emails I receive?
If, as in this project, you choose to have Amazon SES put your emails into an Amazon S3 bucket, the maximum email size (including headers) is 30 MB. If you choose to receive your emails through Amazon SNS notifications, the maximum email size (including headers) is 150 KB.
Q: Are the emails I receive encrypted?
When you set up a receipt rule that configures Amazon SES to put your emails into an Amazon S3 bucket, you can choose to have Amazon SES encrypt the emails using AWS KMS before putting them into the bucket. Encryption is optional, so this simple project does not use it. If you decide to enable encryption, you must decrypt the content after you retrieve the email from Amazon S3. The AWS SDK for Java and AWS SDK for Ruby provide a client that can decrypt the content.