|Did this page help you? Yes | No | Tell us about it...|
Welcome to the Amazon Simple Email Service (Amazon SES) Developer Guide. Amazon SES is an outbound-only email-sending service that provides an easy, cost-effective way for you to send email. You can use Amazon SES to send marketing emails such as special offers, transactional emails such as order confirmations, and other types of correspondence such as newsletters. You only pay for what you use, so you can send as much or as little email as you like. For more service highlights and pricing information, go to the Amazon Simple Email Service Detail Page.
When you send an email, you are sending it through some type of outbound email server. That email server might be provided by your Internet service provider (ISP), your company's IT department, or you might have set it up yourself. The email server accepts your email content, formats it to comply with email standards, and then sends the email out over the Internet. The email may pass through other servers until it eventually reaches a receiver (an entity, such as an ISP, that receives the email on behalf of the recipient). The receiver then delivers the email to the recipient. The following diagram illustrates the basic email-sending process.
When you use Amazon SES, Amazon SES becomes your outbound email server. You can also keep your existing email server and configure it to send your outgoing emails through Amazon SES so that you don't have to change any settings in your email clients. The following diagram shows where Amazon SES fits in to the email-sending process.
A sender can generate the email content in different ways. A sender can create the email by using an email client application, or use a program that automatically generates emails, like an application that sends order confirmations in response to purchase transactions.
When you use Amazon SES, you can eliminate the complexity and expense of building an in-house email solution or licensing, installing, and operating a third-party email service. Another important factor in any email-sending effort is deliverability—the percentage of your emails that arrive in your recipients' inboxes. ISPs use filters to detect email messages that appear to be spam (unsolicited, undesired emails) and prevent these messages from being delivered. Even if your email is legitimate, an ISP's spam filter could falsely identify your email as spam, and put it in the recipient's junk folder or block it entirely.
If you are not using Amazon SES, you need to take several steps to reduce the likelihood that your emails will be marked as spam. For example, you need to examine the content of your emails to make sure they don't contain material that is typically flagged as questionable. You need to build trust with ISPs so that the ISPs have high confidence that you are sending high-quality emails, and therefore are less likely to block emails coming from you. You need to ensure that you don't send too many emails too soon because sudden spikes in email-sending volume or rate may cause ISPs to block your emails. Amazon SES takes care of all of these tasks for you to maximize the deliverability of your emails.
Another aspect that you would need to manage yourself is to keep track of bounces (email delivery failures that occur, for example, if an email address does not exist) and complaints (emails that recipients mark as spam, for example, by clicking "Mark as spam" in their email client). To receive complaint feedback, you would need to set up feedback loops with individual ISPs. Amazon SES already has feedback loops set up with certain major ISPs, and automatically forwards the information to you. Amazon SES also forwards bounce notifications to you either by email or via Amazon Simple Notification Service (Amazon SNS) and provides you with real-time access to your delivery metrics—the number of emails you have sent and the number that have bounced or generated complaints—to help guide your email-sending strategy.
There are several ways that you can send an email by using Amazon SES. You can use the Amazon SES console, the Simple Mail Transfer Protocol (SMTP) interface, or you can call the Amazon SES API.
Amazon SES console—This method is the quickest way to set up your system and send a couple of test emails, but once you are ready to start your email campaign, you will use the console primarily to monitor your sending activity. For example, you can quickly view the number of emails that you have sent and the number of bounces and complaints that you have received.
SMTP Interface—There are two ways to access Amazon SES through the SMTP interface. The first way, which requires no coding, is to configure any SMTP-enabled software to send email through Amazon SES. For example, you can configure your existing email client or software program to connect to the Amazon SES SMTP endpoint instead of your current outbound email server.
The second way is to use an SMTP-compatible programming language such as Java and access the Amazon SES SMTP interface by using the language's built-in SMTP functions and data types.
Amazon SES API—You can call the Amazon SES Query (HTTPS) interface directly, you can use the AWS Command Line Interface, or you can use an AWS SDK, which wraps the low-level functionality of the Amazon SES API with higher-level data types and function calls that take care of the details for you. The AWS SDKs provide not only Amazon SES operations, but also basic AWS functionality such as request authentication, request retries, and error handling. AWS SDKs and resources are available for Android, iOS, Java, .NET, Node.js, PHP, Python, and Ruby.
Amazon SES integrates seamlessly with other AWS products. For example, you can:
Add email capabilities to any application that runs on an Amazon Elastic Compute Cloud (EC2) instance by using the AWS Software Development Kits (SDKs) or the Amazon SES API. If you want to send email through Amazon SES from an Amazon EC2 instance, you can get started with Amazon SES for free.
Use AWS Elastic Beanstalk to create an email-enabled application such as a program that uses Amazon SES to send a newsletter to customers.
Set up Amazon Simple Notification Service (Amazon SNS) to notify you of your emails that have bounced or produced a complaint.
Use the AWS Management Console to set up Easy DKIM, which is a way to authenticate your emails. Although you can use Easy DKIM with any DNS provider, it is especially easy to set up when you manage your domain with Amazon Route 53.
Control user access to your email sending by using AWS Identity and Access Management (IAM).
If you are a first-time user of Amazon SES, we recommend that you begin by reading the following sections:
Getting Started with Amazon SES—Shows you how to send an email by using the Amazon SES console, the SMTP interface, and an AWS SDK. Examples are provided in C# and Java.
Email Deliverability and Amazon SES—Explains email deliverability concepts that you should be familiar with when you use Amazon SES.
Sending Email with Amazon SES—Shows you what happens when you send an email through Amazon SES.
Email Format and Amazon SES—Reviews the format of emails and identifies the information that you need to provide to Amazon SES.
Then you can learn about Amazon SES in more detail by reading the sections listed in the following table:
Shows you how to sign up for AWS, get your AWS access keys, download an AWS SDK, and verify email addresses or domains so that you can start sending emails with Amazon SES.
Shows you how to get your Amazon SES SMTP credentials, connect to the Amazon SES SMTP endpoint, and provides examples of how to configure email clients and software packages to send email through Amazon SES. Also explains how to configure your existing email server to send all outgoing emails through Amazon SES.
Shows you how to send formatted and raw emails by using the Amazon SES API. Explains how to use non-standard characters and send attachments by using the Multipurpose Internet Mail Extensions (MIME) standard when you send raw emails.
Shows you how to use Sender Policy Framework (SPF), Sender ID, and DKIM with Amazon SES to show ISPs that you own the account you are sending from and your emails have not been modified in transit.
Shows you how to view your usage statistics (such as the number of deliveries, bounces, and complaints) and sending limits by using the Amazon SES console or by calling the Amazon SES API. Also shows you how to receive notifications of your bounces and complaints by email or by setting up Amazon SNS notifications.
Explains the two Amazon SES sending limits (sending quota and maximum send rate), how to increase them, and the errors you receive when you try to exceed them.
Provides tips about how to improve the percentage of emails that reach your recipients' inboxes. These include monitoring your sending activity and taking preventative measures to keep your bounce and complaint statistics low.
Shows you how to use Amazon SES with AWS Identity and Access Management (IAM) to specify which Amazon SES API actions a user can perform on which Amazon SES resources.
Explains how to use the Amazon SES mailbox simulator to simulate common email scenarios without affecting your sending statistics such as your bounce and complaint metrics. The scenarios you can test are successful delivery, bounce, complaint, out-of-the-office (OOTO), and address on the suppression list.
Lists limits within Amazon SES.
Explains common causes of delivery problems and provides descriptions of common Amazon SES exceptions and SMTP response codes.
For more information about Amazon SES terms, see the AWS glossary.