Thursday, July 03, 2014

What Is Amazon SES?

What Is Amazon SES?

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.

Where does Amazon SES fit in?

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.
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.
Where Amazon SES Fits In
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.

Why use Amazon SES?

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 through 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.

How do I send emails using Amazon SES?

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, or you can use the AWS Command Line Interface, the AWS Tools for Windows PowerShell, or an AWS Software Development Kit (SDK). The AWS SDKs wrap 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 and other AWS services

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 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 bounced, produced a complaint, or were successfully delivered to the recipient's mail server.
  • 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).

How do I start?

If you are a first-time user of Amazon SES, we recommend that you begin by reading the following sections:
Then you can learn about Amazon SES in more detail by reading the sections listed in the following table:
Setting up Amazon SESShows 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.
Using the Amazon SES SMTP Interface to Send EmailShows 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.
Using the Amazon SES API to Send EmailShows 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.
Regions and Amazon SESLists the Amazon SES SMTP and API endpoints for the AWS regions in which Amazon SES is available, and contains information you need to know when you use Amazon SES endpoints in multiple regions.
Authenticating Email in Amazon SESShows you how to use Sender Policy Framework (SPF) 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.
Monitoring Your Amazon SES Sending ActivityShows 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 bounce and complaint notifications by email, and how to receive bounce, complaint, and delivery notifications by setting up Amazon SNS notifications.
Managing Your Amazon SES Sending LimitsExplains 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.
Improving Deliverability with Amazon SESProvides 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.
Controlling User Access to Amazon SESShows 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.
Testing Amazon SES Email SendingExplains 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.
Limits in Amazon SESLists limits within Amazon SES.
Troubleshooting Amazon SESExplains 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.