Q: What is Amazon Simple Email Service (Amazon SES)?
Amazon Simple Email Service (Amazon SES) is a highly scalable and cost-effective platform for sending and receiving email. Amazon SES eliminates the complexity and expense of building an in-house email solution or licensing, installing, and operating a third-party email solution.
Q: Who can use Amazon SES?
Amazon SES is a great solution for anyone who needs a reliable, scalable, and inexpensive way to send and receive email. Our users include a diverse range of organizations, such as online retailers, application developers, and digital marketing organizations.
Pricing and Billing
Q: How much does it cost to use Amazon SES?
With Amazon SES, you pay only for what you use. There are no minimum fees, and no upfront costs.
The amount you pay depends on the number of messages you send and receive, the volume of data you send. For more information, see the Amazon SES Pricing page.
Q: Is there a free usage tier for Amazon SES?
Yes. If you call Amazon SES from an application hosted in an Amazon EC2 instance, you can send 62,000 email messages each month at no charge. This free tier offer doesn't expire.
Q: How am I billed for my use of Amazon SES?
At the end of each month, we bill you for that month's usage. The billing cycle begins on the first day of each month and ends on the last day of each month.
Q: Am I billed for incoming spam messages?
When you set up Amazon SES to receive email, you create receipt rules. In a receipt rule, you define a recipient (or group of recipients), and specify what Amazon SES does when it receives the email. When an incoming message is addressed to at least one email address that matches an address in an active receipt rule, you pay for that message, even if it is unsolicited (spam) email.
You can configure Amazon SES to block messages from certain senders and IP addresses. If you block incoming messages in this way, you're not billed for the blocked messages.
Limits and Restrictions
Q: What is the Amazon SES sandbox?
The Amazon SES sandbox is an area where new users can test the capabilities of Amazon SES. When your account is in the sandbox, you can only send email to verified identities. A verified identity is an email addresses or domain that you've proven that you own.
Additionally, when your account is in the sandbox, there are limits to the volume of email you can send each day, and to the number of messages you can send each second.
When you're ready to start sending email to non-verified recipients, submit an Amazon SES Sending Limit Increase request through the AWS Support Center. For more information, see Moving Out of the Amazon SES Sandbox in the Amazon SES Developer Guide.
Q: Can I send emails from any email address?
No. You can only use Amazon SES to send email from addresses or domains that you own.
To prove that you own an email address or domain, you have to verify it. In each AWS Region, you can verify up to 10,000 email addresses and domains, in any combination. For more information about verifying email addresses and domains, see Verifying Identities in Amazon SES in the Amazon SES Developer Guide.
Q: Is there a limit on the size of emails Amazon SES can deliver?
Amazon SES accepts email messages up to 10 MB in size. This includes any images and attachments that are part of the message.
Q: Is there a limit on the number of recipients I can specify in a single email message?
You can specify a maximum of 50 recipients for every message you send using Amazon SES. This limit includes all addresses on the "To:," "CC:," and "BCC:" fields. If you need to send an email message to more than 50 recipients, then you have to split your recipient list into groups of 50 recipients or less, and send separate messages to each group.
Q: Are there any limits on how many emails I can send?
Every Amazon SES account has its own set of sending limits. These limits are:
- Sending quota—the maximum number of recipients that you can send email to in a 24-hour period.
- Maximum send rate—the maximum number of recipients that you can send email per second.
Sending limits are based on recipients rather than on messages. You can check your sending limits at any time by using the Amazon SES console.
Note: If we determine that the email you send is of poor or questionable quality (for example, if it has high bounce or complaint rates, or if it contains unsolicited or malicious content), we reserve the right to pause your ability to send email.
Security and Encryption
Q: Can Amazon access the emails that I send and receive?
We use in-house anti-spam technologies to filter messages that contain poor-quality content. Additionally, we scan all messages that contain attachments to check for viruses and other malicious content. These processes are completely automated with no human involvement. We only access email content in certain circumstances, such as when we're troubleshooting delivery issues or investigating fraudulent or abusive activity.
Q: Can I encrypt email messages that I receive?
Amazon SES integrates with AWS Key Management Service (KMS), which provides the ability to encrypt the mail that it writes to your Amazon S3 bucket. Amazon SES uses client-side encryption to encrypt your mail before it sends the email to Amazon S3. This means that it is necessary for you to decrypt the content on your side after you retrieve the mail from Amazon S3. The AWS Java SDK and AWS Ruby SDK provide a client that is able to handle the decryption for you.
Authentication, Validation, and Configuration
Q: Do I need to set up reverse DNS records in order to use Amazon SES?
You don't need to set up reverse DNS records to use Amazon SES. Amazon Web Services manages the IP addresses that Amazon SES uses, and provides reverse DNS records for these addresses.
Q: Does Amazon SES support Sender Policy Framework (SPF)?
Yes, Amazon SES supports SPF. You may need to publish an SPF record, depending on how you use Amazon SES to send email.
If you don't need to comply with Domain-based Message Authentication, Reporting and Conformance (DMARC) using SPF, you don't need to publish an SPF record, because Amazon SES sends your emails from a MAIL FROM domain is owned by Amazon by default.
If you want to comply with DMARC using SPF, you have to set up Amazon SES to use your own MAIL FROM domain and publish an SPF record.
Q: Does Amazon SES support Domain Keys Identified Mail (DKIM)?
Yes, Amazon SES supports DKIM. If you have enabled and configured Easy DKIM, Amazon SES signs outgoing messages using DKIM on your behalf. If you prefer, you can also sign your email manually. To ensure maximum deliverability, there are a few DKIM headers that you should not sign. For more information, see Manual DKIM Signing in Amazon SES in the Amazon SES Developer Guide.
Q: Can emails from Amazon SES comply with DMARC?
With Amazon SES, your emails can comply with DMARC through SPF, DKIM, or both.
Q: Does Amazon SES send email over an encrypted connection using Transport Layer Security (TLS)?
If the receiving mail server advertises the STARTTLS extension, Amazon SES attempts to upgrade the connection to a TLS connection. If that fails, Amazon SES sends the email as plain text.
Amazon SES supports TLS 1.2, 1.1, and 1.0.
Q: Can I use Amazon SES to send email from my existing applications?
Amazon SES allows you to create a private SMTP relay for use with any existing SMTP client software, including software that you develop yourself, or any third-party software that can send email using the SMTP protocol.
For more information, see Using the Amazon SES SMTP Interface to Send Email in the Amazon SES Developers Guide.
Q: Can Amazon SES send emails with attachments?
Amazon SES supports many popular content formats, including documents, images, audio, and video.
Note: For your own safety and that of your customers, Amazon SES scans every attachment that you send for viruses and malware.
You can use an email client that supports SMTP to send email with attachments. When you configure a client to send outgoing email through Amazon SES, the client constructs the appropriate MIME parts and email headers before sending the message.
You can also send email with attachments programmatically. To include an attachment in your email, construct a new multipart email message. In the message, include a MIME part that contains an appropriate Content-Type header, along with the MIME-encoded content. Next, use the Content-Disposition header to specify whether the content is to be displayed inline or treated as an attachment.
Once you've composed your message, you can use the SendRawEmail API operation to send it.
Q: Can I send email using a dedicated IP address?
For an additional monthly charge, you can lease IP addresses that are dedicated to your own personal use. For more information about leasing dedicated IP addresses, see Requesting and Relinquishing Dedicated IP Addresses in the Amazon SES Developer Guide.
Q: Can I specify a dedicated IP address when I send certain types of email?
If you lease several dedicated IP addresses to use with your Amazon SES account, you can use the dedicated IP pools feature to create groups (pools) of those IP addresses. You can then associate each pool with a configuration set; when you send emails using that configuration set, those emails are only sent from the IP addresses in the associated pool. For more information, see Creating Dedicated IP Pools in the Amazon SES Developer Guide.
Q: Can I test Amazon SES responses without sending email to real recipients?
You can use the Amazon SES mailbox simulator to test your sending rate and to test your ability to handle events such as bounces and complaints, without sending email to actual recipients. Messages that you send to the mailbox simulator don't count against your bounce and complaint metrics or your daily sending quota. However, we do charge you for each message you send to the mailbox simulator, just as if they were messages you sent to actual customers.
For more information about the Amazon SES mailbox simulator, see Testing Amazon SES Email Sending in the Amazon SES Developer Guide.
Q: Can I use Amazon SES for email-to-text SMS delivery?
Many mobile phone carriers offer an SMTP-to-SMS gateway. Amazon SES users can send text-only emails to the emails addresses associated with these gateways, which are then delivered to the recipients' mobile phones as SMS messages.
However, in order to successfully use an SMS gateway, you must know several pieces of information, including:
- The recipient's mobile phone number
- The recipient's mobile phone carrier
- The domain name of the carrier's SMS gateway (such as sms.carriername.com)
If SMS messages are part of your marketing or communications plan, we recommend using Amazon Pinpoint. When you use Amazon Pinpoint to send SMS messages, you only need to know the recipient's mobile phone number.
Q: How do I control the character encoding of my emails with Amazon SES?
The SMTP protocol requires that all data be sent in 7-bit ASCII format. If you want to use a different character encoding with the Amazon SES SMTP interface, you have to apply the encoding to the subject and body of your message, and then convert them to a valid 7-bit ASCII message before sending it to the SMTP endpoint.
The SendEmail API accepts UTF-8 subject and body inputs, transcodes them into whatever format you specify via an optional encoding parameter, and automatically converts the resulting content into 7-bit ASCII using the appropriate encoded-word syntax and content-transfer-encoding headers before sending the message. The SendRawEmail API requires you to apply your desired encoding to your subject and body and then convert them to a valid 7-bit ASCII message before submitting each request.
Q: How do I configure Amazon SES to receive email?
The first step in setting up Amazon SES to receive email is to verify your domain. If you've already verified your domain for sending email, you don't need to repeat the process to receive email. For more information about verifying your domain, see Verifying Domains in Amazon SES in the Amazon SES Developer Guide.
After you verify your domain, you have to publish a Mail eXchanger (MX) record to the DNS configuration of your domain. This record refers to the regional Amazon SES email receiving endpoint that you use to receive email. For more information about publishing an MX record, see Publishing an MX Record for Amazon SES Email Receiving in the Amazon SES Developer Guide.
The final step in setting up email receiving in Amazon SES is to create a receipt rule. Receipt rules tell Amazon SES what it should do with email sent to your domain. For example, you can configure Amazon SES to send incoming email to an Amazon S3 bucket, or to send you a notification by using Amazon SNS. For more information about creating receipt rules, see Creating Receipt Rules in the Amazon SES Developer Guide.
Q: What happens when Amazon SES receives my mail?
When Amazon SES receives a message, it references your active receipt rule set to determine if any rules apply to the incoming message's recipients. If there aren't any matches, or if the mail was sent from an IP address on your IP address block list, Amazon rejects the mail in the SMTP conversation. Otherwise, Amazon SES accepts the mail.
After Amazon SES accepts the mail, it evaluates your active receipt rules. Amazon SES then applies these rules in the order that they were defined in.
Q: How do I access my mail in Amazon S3?
When you set up a receipt rule that tells Amazon SES to write your messages to an Amazon S3 bucket, you can also set up Amazon SNS notifications. These notifications contain general information about the message and the action taken on it, including the unique ID of the message. You can use this ID to retrieve the corresponding message from the Amazon S3 bucket where Amazon SES sent the message.
Q: How can I process emails I receive?
There are two ways to process incoming mail. You can write an application that listens for Amazon SNS notifications from Amazon SES, retrieves the mail from Amazon S3, and processes it. Alternatively, you can write a custom AWS Lambda function.
The AWS Lambda event contains all of the metadata about the message that was received, but doesn't include the body of the message. If you need to parse the message body from within Lambda, then you need to first write the message to Amazon S3 using an Amazon S3 action before your AWS Lambda action is evaluated.
You can execute AWS Lambda actions synchronously or asynchronously, depending on whether or not the AWS Lambda function needs to return a result that influences how other actions are executed. We recommend that you use asynchronous execution unless your specific application requires you to use synchronous execution.
Q: Can multiple different AWS accounts receive mail on the same domain?
More than one AWS account can receive mail for the same domain. For each email that arrives on the shared domain, a copy of the message is processed by each account's receipt rule set independently.
Q: Is there any size limit to the messages that I can receive through Amazon SES?
If you store your incoming messages in an Amazon S3 bucket, the maximum message size, including headers and attachments, is 30 megabytes (MB).
If you forward messages using Amazon SNS, the maximum message size is 150 kilobytes (KB).
Q: Is there a limited throughput at which I can receive messages through Amazon SES?
There are no throughput restrictions for incoming email received through Amazon SES.
Q: Can I reject email that was sent over an unencrypted connection?
You can configure your receipt rules in Amazon SES to automatically reject incoming messages that were sent without Transport Layer Security (TLS).
Q: How does Amazon SES help ensure reliable email delivery?
Amazon SES uses content filtering technologies to scan outgoing email messages. These content filters help ensure that the content being sent through Amazon SES meets the standards of ISPs. In order to help you further improve the deliverability of your emails, Amazon SES provides a feedback loop that includes bounce, complaint, and delivery notifications.
Q: Does Amazon SES guarantee receipt of my emails?
Amazon SES closely monitors ISP guidelines to help ensure that legitimate, high-quality email is delivered reliably to recipient inboxes. However, neither Amazon SES nor any other email-sending service can guarantee delivery of every single email. ISPs can drop or lose email messages, recipients can accidentally provide the wrong email address, and if recipients do not wish to receive your email messages, ISPs may choose to reject or silently drop them.
Q: How long does it take for emails sent using Amazon SES to arrive in recipients' inboxes?
Amazon SES attempts to deliver emails to the Internet within a few seconds of each request. However, due to a number of factors and the inherent uncertainties of the Internet, we can't predict with certainty when your email will arrive, nor can we predict the exact route the message will take to get to its destination.
For example, an ISP might be unable to deliver the email to the recipient because of a temporary condition such as "mailbox full." In these cases, Amazon attempts to redeliver the message. If the error is permanent, such as "mailbox does not exist," Amazon SES doesn't try to deliver the message again, and you receive a hard bounce notification. You can set up delivery notifications to alert you when Amazon SES successfully delivers one of your emails to a recipient's mail server.
Bounces and Complaints
Q: How does Amazon SES send bounce, complaint, and delivery notifications to me?
Amazon SES forwards bounce and complaint notifications to you by email or sends them to an Amazon SNS topic, depending on how you set up your Amazon SES account.
Delivery notifications, which are triggered when Amazon SES successfully delivers one of your emails to a recipient’s mail server, are sent to you only through Amazon SNS.
Q. Is there an additional cost to use Amazon SNS to receive bounce, complaint, and delivery notifications?
Yes, there are extra charges associated with using Amazon SNS to receive bounce, complaint, and delivery notifications. For more information about the costs associated with using Amazon SNS, see Amazon SNS Pricing.
Q. When can I expect to be notified of bounces, complaints, and deliveries?
After an ISP sends a bounce or complaint to Amazon SES, we try pass it to you within a few seconds via Amazon SNS or email. However, we may not receive the bounce or complaint notification from the recipient's ISP for a period of time ranging from seconds to weeks or longer, depending on how quickly the ISP notifies us.
Delivery notifications are published as soon as Amazon SES delivers an email to a recipient's mail server. In most cases, email sent through Amazon SES is delivered within seconds, but occasionally it might take longer.
Q: How can I monitor the bounce and complaint rates for the email I send using Amazon SES?
Amazon SES includes a reputation dashboard that you can use to keep track of your bounce and complaint rates, as well as other factors that could impact your ability to send email. You can also use Amazon CloudWatch to create dashboards that track your bounce and complaint rates. For more information about monitoring methods, see Monitoring Your Amazon SES Sending Activity in the Amazon SES Developer Guide.
Q: Can my email deliverability affected by bounces or complaints that are caused by other Amazon SES users?
Typically, when other Amazon SES users send messages that result in bounces or complaints, your ability to send email remains unchanged.
An exception to this rule occurs when a recipient's email address generates a hard bounce. When a recipient's email address generates a hard bounce, Amazon SES adds that address to a global suppression list. If you try to send an email to an address that is on the global suppression list, the call to Amazon SES succeeds, but Amazon SES treats the email as a hard bounce instead of attempting to send it.
Emails that you send to addresses on the global suppression list count toward your sending quota and your bounce rate. An email address can remain on the suppression list for up to 14 days.
For more information about the global suppression list, see Amazon SES and Deliverability in the Amazon SES Developer Guide.
Q: A recipient address was added to the global suppression list, but I am certain it is a valid address. Can I remove that address from the suppression list?
You can submit a suppression list removal request using the Amazon SES console. For more information, see Removing an Email Address from the Amazon SES Suppression List in the Amazon SES Developer Guide.
Q: What happens if I try to send a malformed email message or send an email that is disallowed for any other reason?
If Amazon SES is unable to deliver your message, it returns an error message with information about what caused the delivery to fail. In rare cases, Amazon SES may not detect the problem with your email until after accepting your request. In such cases, your email is returned to you as a bounce with a corresponding error code and reason.
Spam and Viruses
Q: How does Amazon SES ensure that incoming mail is free of spam and viruses?
Amazon SES uses a number of spam and virus protection measures. It uses block lists to prevent mail from known spammers from entering the system in the first place. It also performs virus scans on every incoming email that contains an attachment. Amazon SES makes its spam detection verdicts available to you, enabling you to decide if you trust each message. In addition to the spam and virus verdicts, Amazon SES provides the DKIM and SPF check results.
Q: What prevents Amazon SES users from sending spam?
Amazon SES uses in-house content filtering technologies to scan email content for spam and malware.
If we determine that an account is sending spam or malicious content, we will pause that account's ability to send additional email.
Amazon SES and Other AWS Services
Q: How does Amazon SES integrate with Amazon WorkMail?
Amazon WorkMail uses Amazon SES to send and receive mail. When you set up Amazon WorkMail, Amazon WorkMail creates two items within your Amazon SES configuration settings: a sending authorization policy that allows Amazon WorkMail to send mail through your domain, and a receipt rule with a WorkMail action that delivers your domain's incoming mail to Amazon WorkMail. If you remove either of these items, Amazon WorkMail won't function properly.
Q: How is Amazon SES different from Amazon SNS?
Amazon SES is for applications that need to send communications via email. Amazon SES supports custom email header fields, and many MIME types.
By contrast, Amazon Simple Notification Service (Amazon SNS) is for messaging-oriented applications, with multiple subscribers requesting and receiving "push" notifications of time-critical messages via a choice of transport protocols, including HTTP, Amazon SQS, and email. The body of an Amazon SNS notification is limited to 8192 characters of UTF-8 strings, and isn't intended to support multimedia content.
Q: Do I need to sign up for Amazon EC2 or any other AWS services to use Amazon SES?
Amazon SES users do not need to sign up for any other AWS services. Any application with Internet access can use Amazon SES to deliver email, whether that application runs in your own data center, within Amazon EC2, or as a client software solution.
Q: I'm sending email using my own mail servers hosted on Amazon EC2. Do I have to start using Amazon SES instead?
No, using Amazon SES doesn't affect any Amazon EC2-based solution that you currently use. You can continue to use your existing solution, or use Amazon SES, or use both at the same time.
Q: Does Amazon SES put any restrictions on AWS Lambda functions in addition to the restrictions imposed by AWS Lambda?
There is a 30-second timeout on RequestResponse invocations.
Q: Does Amazon SES provide an SMTP endpoint?
Amazon SES provides an SMTP interface for seamless integration with applications that can send email via SMTP. You can connect directly to this SMTP interface from your applications, or configure your existing email server to use this interface as an SMTP relay.
In order to connect to the Amazon SES SMTP interface, you have to create SMTP credentials. For more information about creating SMTP credentials, see Obtaining Your Amazon SES SMTP Credentials in the Amazon SES Developer Guide.
Q: How can I use the Amazon SES SMTP interface?
To use the Amazon SES SMTP interface, all you need are your SMTP username and password, the SMTP endpoint name, and the port number. Using this information, you can connect to the Amazon SES SMTP interface in the same manner as any other SMTP relay.
For example, you can integrate your existing packaged software so that it sends email through Amazon SES. You can add email sending capability to your applications, using a programming language that supports SMTP. You can integrate Amazon SES sending with popular mail transfer agents (MTAs) such as Sendmail, Postfix, and Exim. You can even connect to the SMTP interface from the command line, and send SMTP commands directly. For more information about the SMTP interface, see Using the Amazon SES SMTP Interface to Send Email in the Amazon SES Developer Guide.
APIs and SDKs
Q: How do I make requests to Amazon SES?
Amazon SES accepts Query requests over HTTPS. These requests use verbs such as GET or POST, and a parameter named Action to indicate the action being performed. For security reasons, Amazon SES does not support HTTP requests; you must use HTTPS instead.
Q: What are the available API operations for sending email?
In addition to SMTP sending support, Amazon SES provides the following APIs: SendEmail and SendRawEmail. These two APIs provide different levels of control over the composition of the actual email message. Both APIs provide the same level of email sending reliability and performance:
The SendEmail API requires the user to provide only a source address, destination address, message subject, and message body. Upon calling this API, Amazon SES automatically constructs and sends a properly formatted multi-part MIME email message optimized for display by email client software.
The SendRawEmail API provides the advanced user with flexibility to format and send their own raw email message by specifying headers, MIME parts, and content types.
Q: Do the AWS Software Development Kits contain support for Amazon SES?
Yes, all of the AWS Software Development Kits (SDKs) provide methods for accessing the Amazon SES API. The SDKs take care of low-level functions, such as authentication and request signing, allowing you to send email by making a simple call to the API.