Q: What is Amazon Simple Email Service (Amazon SES)?
Amazon Simple Email Service (Amazon SES) is a highly scalable and cost-effective email-sending service for businesses and developers. Amazon SES eliminates the complexity and expense of building an in-house email solution or licensing, installing, and operating a third-party email service for this type of email communication. In addition, the service integrates with other AWS services, making it easy to send emails from applications being hosted on AWS. With Amazon SES there is no long-term commitment, minimum spend or negotiation required — businesses can utilize a free usage tier, and beyond that pay only low fees for the number of emails sent plus data transfer fees.
Q: Who should use Amazon SES?
Any business or developer that needs a reliable, scalable, and inexpensive way to deliver email — without having to build their own solution or license, install, and operate third-party software.
Q: What kinds of email can I send via Amazon SES?
You should send email that recipients expect and appreciate, and that comply with applicable laws and regulations, and the AWS Customer Agreement (including the AWS Acceptable Use Policy). Amazon SES can reliably deliver merchandising, subscription, transactional, and notification email messages.
Q: How does Amazon SES help ensure reliable email delivery?
For high email deliverability, Amazon SES uses content filtering technologies to scan a business's outgoing email messages to help ensure that the content meets ISP standards. To help businesses further improve the quality of email communications with their customers, Amazon SES provides a built-in feedback loop that includes bounce, complaint, and delivery notifications.
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. In exceptional cases, accounts identified as sending spam or other low-quality email may be suspended, or AWS may take such other action as it deems appropriate. When malware is detected, Amazon SES prevents these emails from being sent.
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: How is Amazon SES different from Amazon SNS?
Amazon SES is for applications that need to send arbitrary 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 is not intended to support multimedia content.
Q: How can I get started using Amazon SES?
To sign up for Amazon SES, click the "Sign up" button on the Amazon SES detail page and create your AWS account. After signing up, you can access the Amazon SES sandbox — an environment specifically designed for developers to test and evaluate the service. Sandbox users are restricted to 200 email messages per day and one email message per second. Also, while all users must verify the email addresses or domains they will send from, sandbox users must also verify the email addresses or domains they will send to. The purpose of verification is to confirm that you own these email addresses or domains, and to prevent others from using them. See the Amazon SES Developer Guide for details on verifying email addresses and domains.
Q: What should I do after I'm finished testing and evaluating Amazon SES?
Once you are ready to use Amazon SES to send email, you request production access. This will allow you to move from the sandbox environment to the production environment and begin sending email to your customers. You will no longer need to verify recipient email addresses or recipient domains, and you will be able to send much larger quantities of email.
To request production access to Amazon SES, please go to http://aws.amazon.com/ses/fullaccessrequest and complete our brief request form. We generally respond to these requests within 24 hours.
Q: I would like to use Amazon SES from multiple Amazon EC2 instances. Do I need to request production access for each of these instances?
You need to do this only once. If you have been granted production access to Amazon SES, then you can send email from anywhere — including any of your Amazon EC2 instances.
Q: Do I need to set up reverse DNS records in order to use Amazon SES?
Amazon SES users do not need to do this. Amazon Web Services manages the IP addresses used by Amazon SES, and provides reverse DNS records for these addresses.
Q: I am sending email using my own mail servers hosted on Amazon EC2. Do I have to start using Amazon SES instead?
Amazon SES does not affect any Amazon EC2-based solution that you may currently have. You can continue to use your existing solution, or use Amazon SES, or do both at the same time.
Q: How much does Amazon SES cost?
Pay only for what you use. There is no minimum fee. In addition, Amazon EC2 users can get started with Amazon SES for free. You pay only low charges for messages sent, attachments, and data transfer. Please refer to Amazon SES Pricing for more information on pricing, data transfer costs, and free usage.
Q: How will I be charged and billed for my use of Amazon SES?
There are no set-up fees to begin using the service. At the end of the month, you will be charged for that month's usage. You can view your charges for the current billing period at any time on the Amazon Web Services web site. To view your charges for the current billing period, log into your Amazon Web Services account, click "My Account/Console," and then click "Account Activity."
Q: When does billing of my Amazon SES use begin and end?
Your Amazon SES billing cycle begins on the first day of each month and ends on the last day of each month. Your monthly charges will be totaled at the end of each month.
Q: How do I get started with the Amazon SES free tier?
To benefit from Amazon SES free tier pricing, you need to call Amazon SES from within Amazon EC2 or AWS Elastic Beanstalk. If you do this, then your AWS bill will reflect your free tier usage: You can send up to 2,000 messages for free each day. (Note: Data transfer fees still apply.)
Q: Can I take advantage of Amazon SES free tier pricing if I'm in the Amazon SES sandbox?
Yes. If you are in the Amazon SES sandbox, you can send up to 200 messages for free each day, from Amazon EC2 or AWS Elastic Beanstalk, to any of your verified email addresses or domains. However, to take full advantage of the Amazon SES free tier, you will need to request production access because this will allow you to send up to 2,000 free messages per day from Amazon EC2 or AWS Elastic Beanstalk, to any email address. (Note: Data transfer and attachment fees still apply.)
Q: Where can I track my Amazon SES usage?
You can track your usage on your AWS Account Activity page.
Q: Does Amazon SES provide an SMTP endpoint?
Yes. Amazon SES provides a full-featured 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.
To connect to the Amazon SES SMTP interface, you must create SMTP credentials. To create your credentials, go to the Amazon SES console and click the SMTP link.
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, go to the Amazon SES Developer Guide.
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 will automatically construct and send 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: Can I use Amazon SES to send bulk email?
Yes. Simply call the SendEmail or SendRawEmail APIs repeatedly for each email you would like to send. Software running on Amazon EC2, Amazon Elastic MapReduce, or your own servers can compose and deliver bulk emails via Amazon SES in whatever way best suits your business. If you already have your own bulk mailing software, it's easy to update it to deliver through Amazon SES — either by modifying the software to directly call Amazon SES, or reconfiguring it to deliver email through an Amazon SES SMTP relay as described above.
Q: Can Amazon SES send emails with attachments?
Yes. Amazon SES supports many popular content formats, including documents, images, audio, and video.
You can send email with attachments by using an email client that supports SMTP. When you configure such a client to send outgoing email through Amazon SES, the client constructs the appropriate MIME parts and email headers before sending the message. All of this happens automatically in your client with no additional user intervention.
You can also send email with attachments programmatically. To include an attachment in your email, construct a new multipart email message. In this 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 have constructed your message, you can send it using the SendRawEmail API; you can also use the AWS Software Development Kits (SDKs) or a third-party library such as boto for Python.
To learn more about attachment pricing for Amazon SES, please see Amazon SES Pricing.
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 will need to apply your desired encoding to your subject and body, 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 with appropriate encoded-word syntax and content-transfer-encoding headers before transmission. 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: 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 determines that it is unable to deliver your message it will return an error specifying that delivery failed and providing the reason. In rare cases, Amazon SES may not detect the problem with your email until after accepting your request. In such cases, your email will be returned to you as a bounce with a corresponding error code and reason.
Q: Does Amazon SES support Sender Policy Framework (SPF)?
Yes. Amazon SES helps enable your emails to pass SPF policy checks enforced by many ISPs. We recommend that all Amazon SES users publish SPF records authorizing Amazon SES to send from their domains. For more information on configuring SPF, go to the Amazon SES Developer Guide.
Q: Does Amazon SES support Domain Keys Identified Mail (DKIM)?
Yes. Amazon SES will DKIM-sign outgoing messages on your behalf if you have Easy DKIM configured and enabled. For more information on how to configure Easy DKIM and other DKIM topics, go to the Amazon SES Developer Guide.
If you wish, you can also DKIM-sign your email yourself. To ensure maximum deliverability, there are a few DKIM headers that you should not sign. For more information, go to the Amazon SES Developer Guide.
Q: Does Amazon SES send email over an encrypted connection using Transport Layer Security (TLS)?
Yes. If the receiving mail server advertises the STARTTLS extension, Amazon SES will attempt to upgrade the connection to a TLS connection. If that fails, Amazon SES will fall back to plain text.
Q: What TLS version does Amazon SES use to send email?
Amazon SES only supports TLS v1.
Q: Can I test Amazon SES responses without sending email to real recipients?
Yes. The Amazon SES mailbox simulator provides an easy way to test your sending rate and generic email responses, including bounces and complaints, without sending to actual recipients. Emails to the mailbox simulator do not affect your bounce and complaint metrics, and do not count against your sending quota.
For more information on the Amazon SES mailbox simulator, go to the Amazon SES Developer Guide.
Q: How long will it take for emails sent via Amazon SES to arrive?
Generally, 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 cannot predict with certainty when your email will arrive nor 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 retry the message for a length of time. If the error is permanent, such as "mailbox does not exist," Amazon SES does not retry the delivery attempt and you will 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. For troubleshooting delivery issues, see the Amazon SES Developer Guide.
Q: Does Amazon SES guarantee receipt of my emails?
Amazon SES closely monitors ISP guidelines worldwide to help ensure that legitimate, good quality email will be delivered reliably to recipient inboxes. However, neither Amazon SES nor any other email-sending service can guarantee that emails will be received. 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: Do the AWS Software Development Kits contain support for Amazon SES?
Yes. You can use the AWS Software Development Kits (SDKs) for Android, iOS, Java, .NET, Node.js, Python, PHP, and Ruby to access the Amazon SES API. These SDKs make it easy to email-enable your applications, allowing them to send email with a simple API call.
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: Can I use Amazon SES for email-to-text delivery?
Yes. For example, if you know the email address associated with a mobile phone, you can use Amazon SES to send an email message to an SMS gateway, and the message will be delivered to the phone.
Q: Can I use Amazon SES to send email from my existing applications?
Yes. The Amazon SES Developer Guide provides instructions for configuring common mail transfer agents (MTAs) to use Amazon SES as an email transport. By following these instructions, you can create a private SMTP relay for use with any existing SMTP client software. This includes any software that you write, or any third-party software that supports SMTP, such as content management and database management systems.
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 your configuration. 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. Where does Amazon SES send my bounce, complaint, and delivery notifications?
Delivery notifications are available through Amazon SNS. Bounces and complaints can be sent to you by email, through Amazon SNS, or both. If you choose to receive bounce and complaint notifications by email, Amazon SES will send you your bounce and complaint notifications based on the following logic:
If you used the SMTP interface to send the message, then notifications go to the address specified in SMTP's required MAIL FROM command, which overrides any Return-Path header specified in the SMTP DATA.
If you used the SendEmail API action to send the message, then:
- If you specified SendEmail's optional ReturnPath parameter, then notifications go to the specified address.
- Otherwise, notifications go to the address specified in SendEmail's required Source parameter, which populates the From: header of the message.
If you used the SendRawEmail API action to send the message, then:
- If you specified SendRawEmail's optional Source parameter, then notifications go to that address, overriding any Return-Path header specified in the raw message.
- Otherwise, if the Return-Path header was specified in the raw message, then notifications go to that address.
Otherwise, notifications go to the address in the From: header of the raw message.
Q. What actions should I take if I receive a bounce or a complaint?
You will need to analyze each bounce and complaint email or Amazon SNS JSON object that you receive to determine the cause. Bounces are usually caused by attempting to send to a nonexistent recipient; complaints arise when the recipient indicates that they do not want to receive your message. In either case, we recommend that you stop sending to these email addresses.
Q. Is there an additional cost to use Amazon SNS to receive bounce, complaint, and delivery notifications?
You will incur normal Amazon SNS expenses if you use it for bounce, complaint, and/or delivery notifications. Please see Amazon SNS Pricing for information about their free tier and full details about their 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 will usually 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: Will I be affected by any bounces or complaints that are caused by other Amazon SES users?
Even if other Amazon SES users cause bounces or complaints, your ability to send email should remain unchanged.
There is one exception. Whenever a recipient address generates a hard bounce for any Amazon SES user, Amazon SES considers that address to be invalid, and adds the address to the Amazon SES suppression list. In the next 14 days, any email sent by any Amazon SES user to that address is treated like a hard bounce. Like any hard bounce, suppression list bounces count towards your sending quota and your bounce rate. For details, go to the Amazon SES Developer Guide.
Q: What if I’m sure that a recipient address on the Amazon SES suppression list is valid?
You can submit a suppression list removal request using the Amazon SES console. For more information, see the Amazon SES Developer Guide.
Q: Are there limits as to whom I can send emails to?
As described in the AWS Customer Agreement (including the AWS Acceptable Use Policy), each user is responsible for remaining compliant with applicable laws and regulations. Further, each user is responsible for sending only email that recipients want and expect to receive. AWS may suspend any accounts identified as sending spam or other unwanted low-quality email, or take other action as AWS deems appropriate.
Q: Can I send emails from any source email address?
Yes. You can specify any "From" address in the email messages that you send using Amazon SES, but to prevent phishing, you must demonstrate your ownership and control of each email address or domain that you send from. Otherwise, your email will not be accepted for delivery. You can verify ownership and control of email addresses and domains by using either the Amazon SES console or the Amazon SES API. For details on address verification and domain verification, see the Amazon SES Developer Guide.
You can verify a total of up to 1000 email addresses and domains, in any combination.
Q: Is there a limit on the size of emails Amazon SES will deliver?
Amazon SES will accept email messages up to 10 MB in size. This includes any attachments that are part of the message.
Q: Is there a limit on the number of recipients per email message?
Amazon SES lets you specify a maximum of 50 recipients for every message you send. In other words, the combined number of To:, CC:, and BCC: recipients must not exceed 50. If you need to send an email message to more than 50 recipients, then you need to send multiple messages, each addressed to 50 recipients or fewer.
Q: Are there any limits on how many emails I can send?
Every Amazon SES sender has a unique set of sending limits, which are calculated by Amazon SES on an ongoing basis:
Sending quota — the maximum number of emails you can send in a 24-hour period.
Maximum send rate — the maximum number of emails you can send per second.
New Amazon SES users who have received production access can send up to 10,000 emails per 24-hour period, at a maximum rate of 5 emails per second. Amazon SES automatically adjusts these limits upward, as long as you send high-quality email. If your existing quota is not adequate for your needs and the system has not automatically increased your quota, you can submit an SES Sending Quota Increase case at any time.
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 that if your email is detected to be of poor or questionable quality (e.g., high complaint rates, high bounce rates, spam, or abusive content), Amazon SES might temporarily or permanently reduce your permitted send volume, or take other action as AWS deems appropriate.
Q: Why are these sending limits in place?
Using these limits to steadily "ramp up" your sending activity helps you improve your deliverability. This approach helps Amazon SES adapt to your particular sending needs. As you continue to send high-quality email, Amazon SES adjusts to your particular usage patterns, and gradually increases your sending limits. You can also submit an SES Sending Quota Increase case at any time if you anticipate needing to raise your sending limits.
Q: How can I monitor the email I send using Amazon SES?
Use the Amazon SES console to proactively identify and monitor your sending activity. The console displays the number of emails you've sent, the maximum number of emails you can currently send per 24-hour period, and the per-second rate at which you can send them.
The Amazon SES console also lets you view the number of bounces, complaints, and emails rejected due to spam filtering events. The data is aggregated over the past two weeks, and is divided into 15-minute intervals. If these numbers are increasing, they can signify problems with the quality of your email. In the case of a dramatic decline in quality, Amazon SES may be forced to suspend sending your emails without prior notice, or take other action as AWS deems appropriate.
Q: Who, if anyone, has access to my email content?
We take our privacy and data protection responsibilities very seriously. Amazon SES uses in-house anti-spam/anti-virus technologies to filter email messages containing poor-quality content and prevent them from being sent. We will only access email content under very limited circumstances, such as system troubleshooting, or investigating fraudulent or abusive activity. Furthermore, other Amazon SES customers do not have access to your email content.