This is the first part of the series that will discuss the Amazon Simple Email Service (SES). These will be the topics discussed in this part:

  • SES introductory notions
  • Email address verification
  • Domain verification

Amazon SES is an email sending service that provides an easy and cost effective way to send emails. Usually, to send emails, there must be some sort of outbound email server through which the emails are sent. The email server accepts the email sent by the user and then sends it further to the recipients over the Internet.

VMware Training – Resources (Intense)

When a user is sending an email, an email client is typically used which has specific settings that identify the email server that will send the emails to the recipients.

When SES is used, Amazon SES takes the role of the email server or the email server becomes optional. You could either configure the email client with the settings from SES or you can keep the current settings on the email client (regarding your email server) and configure the email server to send the emails through SES.

Why would one choose to use SES? Here are a few reasons:

  • It eliminates the need to provision your email server along with the complexity and the costs of maintaining one.
  • In the beginning, you need to build your email server’s reputation to decrease your chances that your emails be treated as spam. Amazon SES takes care of this by using its own reputation in communicating with various ISPs.

There are three ways on how one can send emails through SES:

  • Amazon SES console – the quickest, but it doesn’t allow a high rate for sending emails. We will see how this is done throughout the rest of the article.
  • SMTP Interface – either configure an email client or use a programming language.
  • Amazon SES API

Let’s discuss Amazon SES sandbox. When you use Amazon SES for the first time, you are placed in a sandbox, where you have full access to the Amazon SES API and SMTP Interface. However, there are a few limitations, such as:

  • You can send emails only to verified email addresses and domains and to the SES mailbox simulator. We will discuss the SES mailbox simulator in a future part.
  • You can send up to 200 emails in every 24-hour interval.
  • You can send a maximum of one email per second.

You can request to be moved out from the SES sandbox to avoid these limitations.

So let’s start looking at a few of these things.

You can access the “Email Sending Service” from the “Application Services” section of the AWS Management Console:

Once you access the service, you will have access to the SES dashboard:

You can verify a single email address or you can verify email addresses from any domain by verifying the domain.

Let’s start by verifying a single email address. Select “Email Addresses” from the left menu:

And then select “Verify a New Email Address”:

Once you confirm that you want to verify that email address, the email address verification status will change to “pending verification”:

At the same time, in the inbox of the email address that you want to authorize, you will receive an authorization request that looks like this:

Once you confirm the authorization, the status of the email address will change to “verified”:

From now on, you can send emails from this email address by selecting the email address and then clicking on “Send a Test Email”. After the details are filled and the email is sent:

The email received should look like this:

Remember that while you are in the sandbox, you can send emails only to verified email addresses so email communications will be between verified email addresses. See what happens when this condition is not met:

Once you try to send the email, you will get this error:

Now, you can send as many emails you want to verified email addresses.

Let’s see how you can verify a domain so that all email addresses from that domain would be able to send emails.

From the “Domains” menu, click on “Verify a New Domain”:

I already have one domain (vtep.net) that is managed by Amazon Route 53:

However, there is no MX entry in the DNS zone of the domain, which means there is no email server with email addresses for this domain. However, this doesn’t prevent us to verify any possible future email addresses from this domain.

Once you click on “Verify This Domain”, you will get instructions on how to change the DNS settings for the domain:

As you can see, I need to add a TXT entry in the DNS zone of the domain that I want to verify. Even if the change is done quickly, the propagation might take some time until AWS figures out that I changed the DNS zone. However, like in my case, if you have the domain already configured with Amazon Route 53, then the verification will happen very quickly. Meanwhile, the status of the domain will be “pending verification”.

Meanwhile, I added the record set in the Route 53 zone:

And the domain should now be verified:

You should also receive an email confirming this:

From this moment on, you can send emails even from a non-existing email address from the domain vtep.net:

The email looks like this:

The same limitation about the email addresses to which you can send emails while in the sandbox applies here as in the case of a single email address.

And we have reached the end of the first part of the series. In this part we discussed what Amazon Simple Email Service is, its concepts and how to verify a single email address or a domain.

In the next part of the series we will discuss SES SMTP Interface, email authentication, and how to test SES email sending.

References