Building large-scale email solutions to send marketing and transactional messages is often a complex and costly challenge for businesses. To optimize the percentage of emails that are successfully delivered, you must deal with infrastructure challenges such as email server management, network configuration, and IP address reputation. Additionally, many third-party email solutions require contract and price negotiations, as well as significant up-front costs.
Amazon SES eliminates these challenges and enables you to benefit from the years of experience and sophisticated email infrastructure Amazon.com has built to serve its own large-scale customer base. Using SMTP or a simple API call, you can access a high-quality, scalable email infrastructure to efficiently and inexpensively communicate to your customers.
To use Amazon SES, you simply:
- Sign Up: After signing up, you can access the Amazon SES sandbox – an environment specifically designed for developers to test and evaluate the service.
- Verify Domains or Email Addresses: Before you can send email via Amazon SES, you need to verify that you own the domain or address from which you’ll be sending email. To start the verification process, visit the Amazon SES console.
- Request Production Access: 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. It only takes a few minutes to apply for production access, and you usually receive a response within 24 hours.
- Send Email: You can use either SMTP or the Amazon SES API to queue an email message for delivery.
- Get Feedback: Amazon SES provides useful statistics about your sending activities. With a simple query or Amazon SES console visit, you can quickly obtain vital statistics such as volume sent, bounces and complaints.
For more information about how to set up and use Amazon SES, see the Amazon SES Developer Guide.
The term deliverability refers to the likelihood that an email message you send will actually arrive at its intended destination.
It is an unfortunate fact that a very large percentage of global email traffic is spam – unsolicited or undesired bulk email. ISPs are equipped with automated filters to detect email messages that appear to be spam, and prevent these messages from being delivered. Most email messages that you send over the Internet are scanned by one or more ISPs, each of which has its own spam filters in place. Spam filters are not perfect: even if your email is legitimate, an ISP's spam filter could still falsely identify it as spam, and block it.
When deciding whether to deliver an email, one factor that ISPs consider is where the email originated. If an IP address or domain has a history of sending spam, then the ISP may block delivery from either or both. Amazon SES takes proactive steps to prevent questionable content from being sent, so that ISPs receive consistently high-quality email from our domains and therefore view Amazon SES as a trusted email origin.
Below are some of the features that maximize deliverability and dependability for all of our senders:
- Amazon SES uses content filtering technologies to help detect and block messages containing viruses or malware before they can be sent.
- Amazon SES maintains complaint feedback loops with major ISPs. Complaint feedback loops indicate which emails a recipient marked as spam. Amazon SES provides you access to these delivery metrics to help guide your sending strategy.
- Amazon SES supports authentication mechanisms such as Sender Policy Framework (SPF) and DomainKeys Identified Mail (DKIM). When you authenticate an email, you provide evidence to ISPs that you are the owner of the account and that your emails have not been modified in transit. Amazon SES makes it easy for you to authenticate your emails. If you configure your account to use Easy DKIM, Amazon SES will DKIM-sign your emails on your behalf, so you can focus on other aspects of your email-sending strategy.
To provide you with the flexibility to decide which email-sending method works best for your use case, Amazon SES has multiple cloud-based email interfaces you can choose from. You can use the Amazon SES console, the Simple Mail Transfer Protocol (SMTP) interface, or you can call the Amazon SES API.
- The Amazon SES console is the quickest way to get set up, but after you send a couple of test emails, you will use the console primarily to monitor your sending activity.
- The SMTP interface is ideal if you want to take advantage of your existing SMTP-enabled email client or software program. You can simply configure the software to send all outbound emails through Amazon SES. There will be no change in how you interact with the email client or software. If you're a developer, you can also use an SMTP-enabled programming language such as Java to access the Amazon SES SMTP interface by using the language's built-in SMTP functions and data types.
- A more advanced option is to call the Amazon SES Query API directly by making HTTPS requests. When you call the Amazon SES API, you can use one of two email-sending actions that provide you with different levels of control over the composition of the email message. You can also access the Amazon SES API by using the AWS Command Line Interface, or you can use an AWS Software Development Kit (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. AWS SDKs are available for Android, iOS, Java, .NET, Node.js, Python, PHP, and Ruby.
To help you fine-tune your email-sending strategy, Amazon SES automatically collects the following statistics regarding your sending activity:
- Successful delivery attempts
- Rejected messages
These statistics are available to you on a real-time basis via a single API call or by using the Amazon SES console. By regularly monitoring your sending statistics, you can identify and fix problems right away.
To help you track your email sending, Amazon SES has a built-in mechanism to forward you bounce, complaint, and delivery notifications. Amazon SES can send the bounce and complaint messages to you in one of two ways: by email or through Amazon Simple Notification Service (Amazon SNS). Delivery notifications are available only through Amazon SNS.
Amazon SES provides a mailbox simulator that you can use to test how your application handles various email-sending scenarios without affecting your sending quota or your bounce and complaint metrics. The mailbox simulator is a set of email addresses that each simulate a specific type of behavior: a successful acceptance, a hard bounce, an out-of-office auto response, a complaint, or an address on the Amazon SES suppression list. Since your test messages are received by Amazon SES instead of actual recipients, your bounce and complaint rates are not affected. The mailbox simulator is also a good way to find your system’s maximum throughput without using up your daily sending quota.
AWS recommends Amazon SES as the preferred solution for Amazon EC2 users who need an email-sending service. You can add email capabilities to any application running on an EC2 instance. If you send emails from an Amazon EC2 instance directly or through AWS Elastic Beanstalk, you are eligible for the Amazon SES Free Usage Tier.
You can easily create an email-enabled application using AWS Elastic Beanstalk with Amazon SES. For example, you can write an application that accesses a list of customer addresses, and then uses Amazon SES as a marketing email service to send special offers to each customer. The AWS SDK for Java provides access to the Amazon SES API, so all of your AWS Elastic Beanstalk applications can send email with a simple API call.
Amazon SES can pass your bounce, complaint, and delivery notifications to Amazon SNS topics that you specify. Notifications are set according to verified email addresses and domains and can be configured via the AWS Management Console or via the Amazon SES APIs.
When you use the Amazon SES console to verify or set up Easy DKIM on a domain that you manage with Amazon Route 53, you can automatically generate the record sets for that domain. This eliminates the need to manually add a TXT record for domain verification or CNAME records for DKIM-signing.
Amazon SES integrates with IAM so that you can specify which Amazon SES API actions a user can perform. For example, you can create an IAM policy that allows users in your organization to send email but not perform administrative actions.
Your use of this service is subject to the Amazon Web Services Customer Agreement.