Menu
Amazon Simple Email Service
Developer Guide

Sending Email with Amazon SES

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.

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 API directly through HTTPS, or you can use the AWS Command Line Interface, the AWS Tools for Windows PowerShell, or an AWS 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.

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 sending email with Amazon SES in more detail by reading the sections listed in the following table:

Section Description

Setting up Email

Shows you how to sign up for AWS, get your AWS access keys, download an AWS SDK, verify email addresses or domains, and move out of the Amazon SES sandbox.

Using the SMTP Interface

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.

Using the API

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.

Authenticating Your Email

Shows you how to use DKIM with Amazon SES to show ISPs that you own the domain you are sending from.

Monitoring Your Sending Activity

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 bounce and complaint notifications by email, and how to receive bounce, complaint, and delivery notifications by setting up Amazon SNS notifications.

Managing Your Sending Limits

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.

Using Sending Authorization

Shows you how to authorize other users to send emails from your identities on your behalf.

Using Dedicated IP Addresses

Helps you decide whether to use shared IP addresses or lease dedicated IP addresses for your Amazon SES sending.

Testing Email Sending

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.

Troubleshooting

Explains common causes of delivery problems and provides descriptions of common Amazon SES exceptions and SMTP response codes.

For technical discussions about various Amazon SES topics, visit the Amazon SES Blog. To browse and post questions, go to the Amazon SES Forum.