Amazon SES logoAmazon Simple Email Service (SES) will help your WordPress installation send out emails more reliably and ensure they go straight to your recipient’s inboxes, not spam folders.

Are your WordPress emails consistently going into the spam folder? Or not being delivered at all? Perhaps you’ve received complaints or noticed it yourself. It’s a common problem.

Spam marked emails can often happen if your hosts’ server has been blacklisted, among other reasons. As well, emails sent to many recipients can often fail. Fortunately, there’s Amazon SES to help us deliver WordPress email more effectively.

Why Use Amazon SES?

WordPress sends email using a method similar to PHP’s mail() function. It depends on your server to send out message and can often times be unreliable depending a number of factors including the size of the message and number of recipients.

Often times you can work around this snafu by using Gmail as your WordPress SMTP server. This is a cost effective that may work for some alternative, but keep in mind that Gmail’s SMTP Servers have limitations:

I used Gmail as my SMTP server temporarily and it worked great. However I also send out several notification emails (notifying them of replies to forum topics etc…) Google’s SMTP didn’t like the auto emails and after about 20 emails it stopped sending from that email as the SMTP server.

Talon from Stack Exchange

As you can see Gmail works to send your WordPress emails, but not if you’re sending many emails through the service. Keep this in mind if you are running bbPress, BuddyPress or WordPress multisite.

Setting Up Amazon SES

The process to set up an Amazon SES account is rather simple:

  1. Sign up for an account
  2. Verify email address(es) or domain(s)

Amazon provides you a lot of documentation on how to get started with the service.

After you have verified your account it’s time to test out the service using the sandbox via a WordPress plugin called WP SES.

Install the WP SES Plugin

WP SES Plugin
The WP SES Plugin

The plugin I’m using to send email through Amazon SES is called WP SES. Download, install and activate this plugin.

WP SES is not a bad plugin if you can get past the typos and clunky UI. It’s actively developed and there’s even a website for it. Oh yeah, and it’s free.

Configure WP SES

WP SES Settings
WP SES Settings

Once you have the plugin activated let’s get started configuring it. You will see a notification telling you in order to use the plugin it must be configured. Click on the link to be taken to the plugin settings page and complete the following steps:

  1. The email address and name are the senders of the emails you want to send.
  2. The return path is the email to which you want to send your delivery notifications, typically failures and spam complaints.
  3. WP SES needs your Amazon Access Keys (Account > Security Credentials) in order to function.  Get your keys and insert them into the appropriate fields within the plugin. 

After you have completed the fields it’s time to confirm that you own the email address that will be used to send out emails.

Confirm Your Email Ownership

To add your email as a confirmed sender, just click “Add this email” below the Confirmed Senders table:

confirmed-emails-table-wp-ses

Notice the email in the image above is not yet confirmed. This is because you will have to verify it by clicking on the link within the email that Amazon sends over in their verification request:

Amazon SES Verification email
Amazon SES Verification email

After you click the verification link your request will be processed and the email will be confirmed.

Send a Test Email

WP SES provides the ability to send a test email via Amazon SES to the newly verified sender email. Click the Send Test Email button:

send-test-email

Did you receive the email? If you did everything is a go and you’re ready to move into production. If not, review the previous steps to ensure you didn’t skip anything.

SES Production Access

Great! You’ve received the test email, nearly all setttings are configured in the plugin, and you’re ready to request production access to Amazon SES. What’s a bummer is it’s not immediate. Typically you have to wait up to 24-hours for production access.

SES Production Access
Form to submit a case for production access to Amazon SES

If everything checks out on Amazon’s end they will send you an email confirming your production access.

Final Step: ‘Activate’ the Plugin

Now that you have production access it’s now time to fully activate the plugin so ALL emails run through Amazon SES. Simply click the activate plugin to finalize the configuration:

wp-ses-activate-plugin

Now Begin Enjoying Reliable Email Sending

You are using production mode now, so test it out. Make sure emails are still sending. If they are you’re good to go!

The setup isn’t exactly painless. There are several steps involved and Amazon Web Services by their own nature aren’t for the technically challenged. But, we never saw a bit of code and the WP SES plugin makes the process pretty simple.

What are your thoughts? Spill your mind in the comment section below!

Devin Walker is a San Diego-based WordPress Developer and enthusiast. He is the author of several popular and highly-rated WordPress themes and plugins. In his free time he enjoys playing Golf and traveling.

Follow Devin:

20 Responses to “Using Amazon SES to Send WordPress Emails”

  1. Hope

    Devin, by using wordpress and SES can you get the cost benefit of SES with the look and feel benefit of WordPress? Meaning, I want to send interactive emails like you would from constant contact, but want the pricing and storage benefits that Amazon offers. Thanks.

    Reply
  2. J Smith

    The only issue with using this plugin is if you host multiple sites/domains for various clients. Then each client can see any e-mails addresses used by your other websites. It would be best if they allowed you to use IAM instead of the access and secret key.

    Reply
  3. Michael Dorchain

    Using IAM SMTP credentials with SES makes more sense to me. It is easier to setup and you can use it with any SMTP plugin that support authenticated SMTP with TLS. This doen’t require any support of the AWS SES API anymore.

    Reply
  4. Lio Mayer

    This is useful for me, Thanks, I also found http://computerkida.com/14/send-email-amazon-ses this guy’s are also explain nice. I have question, Is this plugin can also handle email notofications

    Reply
  5. Rob from Press Wizards

    I’d recommend using Mailchimp’s Mandrill or Rackspace’s Mailgun, both have free use for under 10-12,000 emails a month, and much easier to set up, no?

    Reply
    • Devin Walker

      Yes those services are much easier to setup, particularly Mandrill.

      Reply
      • John L. Rothra

        I looked at Mandrill (mandrill.com) and I’m not seeing the ease of use. It looks like someone has to be a coder to use it. That means a small business owner with very little to no coding knowledge will be completely lost. I even looked at the “how to use Mandrill” using CodeAcademy and it says to enter your code (http://www.codecademy.com/tracks/mandrill ). Um… what code? Are there options where someone w/o coding knowledge can use a system to create nice-looking emails?

        Reply
    • Nick Ciske

      Mandril just changed their pricing: 2k emails free (trial) then $9.95 a month for up to 25k emails/month.

      Reply
  6. DeadJDona

    You can not send emails from contact form with user’s email in From: field with ses.

    So its useless as…

    Reply
    • Nick Ciske

      You should not be doing that anyways — that’s what the “Reply To” header is for (where to send replies) while the actual sender remains valid and not “spoofed”.

      Reply
  7. Britney Wheeler

    I had a problem with ” Message rejected: Email address is not verified.” when sending out a test email from WordPress but had no problems sending it from the Amazon SES console. I had to verify my domain as well, by adding a TXT entry using the Advanced Zone Editor in Cpanel, and then it worked. I have production access, but I’m still not sure how to send out emails using this. I’ve got 600 emails I need to send and I don’t know how to do it. Preferably a free solution of some sort.

    Reply
  8. Sergey

    Hi. I just moved my wordpress site to Ec2, and domain to Route 53. How do I host my emails?

    Reply
  9. Is email from your website getting marked as spam? • Rainworks Web Development

    […] of this post, but if you use WordPress, there are plugins to integrate with both (for Mandrill, for Amazon SES), making them very easy to set up. This is my highest recommendation, because these services are […]

    Reply
  10. Gmail SMTP Settings and New Security Measures Demystified by techspirit – TechSpirit

    […] Some nice examples are hosted e mail companies like Mandrill, Sendgrid, and even one thing like Amazon Web Services SES. There are an entire bunch of different related companies that I might listing right here, however […]

    Reply
  11. abdul

    anyone with mailpoet with amazon ses, Im having issues of error 504 gateway problems

    Reply
    • Drew

      Yeah, me too. MailPoet was working fine with SES when I first installed it, but after a few weeks it started constantly throwing 504 errors. I have reinstalled the plugin, but it’s still broken.

      Reply
      • JTIM

        Hey, are you still having issues with MailPoet and SES?
        I’m using MailPoet and planning to subscribe with SES for sending emails so your feedback will be very helpful.

        Reply

Leave a Reply