The WP SES plugin has been acquired by Delicious Brains Inc. Big improvements are on the way, but for now we’ve just tidied up the UI a bit.

WP SES sends all outgoing WordPress emails through Amazon Simple Email Service (SES) instead of the local wp_mail() function.

This ensures high email deliverability, email traffic statistics and a powerful managed infrastructure.

Multisite features are so far experimental.

Current features are:

  • Ability to adjust WordPress default sender email and name
  • Validation of Amazon API credentials
  • Request confirmation for sender emails
  • Test message within Amazon Sandbox mode
  • Full integration as seamless replacement for wp_mail() internal function
  • Dashboard panel with quota and statistics
  • Ability to customize return path for delivery failure notifications
  • Custom Reply-To and From headers
  • Default config values for centralized multisite setups
  • SES region selection
  • Emails with attachments are supported (Compatible with Contact Form 7)
  • File logging feature (may be verbose and insecure, do not use as is in production for a long period of time)
  • English, French, Spanish, Serbo-Croatian translations (fell free to send your mo/po files to support more languages)

PRO Version with Email Support and More Features

Get email open and click tracking for all your Amazon SES emails with the following features and more:

  • Track email opens and link clicks
  • Log sent emails and failures
  • Queue email to handle rate limits and retry failures
  • Step-by-step setup wizard encouraging best practices
  • Email support

Compare pro vs free →

See the video below or visit the web site to learn more about the pro version.


  • Settings screen


Basic Setup

  1. Install and activate the plugin
  2. Go to Settings > WP SES in the WordPress dashboard menu
  3. Fill the email address and name to use as the sender for all emails

Amazon API Keys and Permissions

  1. Sign up for AWS if you haven’t already
  2. Visit the IAM console
  3. Create a new IAM user or grant an existing user the following permissions: ListIdentities, SendEmail, SendRawEmail, VerifyEmailIdentity, DeleteIdentity, GetSendQuota, GetSendStatistics
  4. In the plugin settings, fill in the Amazon API Keys

IAM User Inline Policy:

    "Version": "2012-10-17",
    "Statement": [
            "Sid": "Stmt1461433902000",
            "Effect": "Allow",
            "Action": [
            "Resource": [

Verify Sender Email Address

Amazon SES requires that the sender of emails sent through its service confirm that they are the owners of the sender email address.

Email verification is per region, so if you change regions, you will need to confirm your sender email address again.

  1. Visit the Amazon SES console
  2. Verify the sender email address
  3. Confirm by visiting the link you get by email from Amazon SES

Sending a Test Email

If this is the first time you’re using Amazon SES, your account will be in sandbox mode, which means you can only send emails to the verified sender email address.

  1. In the plugin settings, make sure to save changes (important!)
  2. Scroll down and click the Send Test Email button

Turning It On

Once you get the test email working, you can send AWS a request to increase the sending limit and put your account in production mode, allowing you to send emails to anyone.

  1. Visit the Sending Statistics screen in the Amazon SES console
  2. Click the Request a Sending Limit Increase button, fill out the form and submit
  3. Once AWS grants your request, click the Turn On button in the plugin settings

Preguntas frecuentes

Where can I get support for the plugin?

If you upgrade to WP Offload SES, we will gladly provide you with email support. We take pride in delivering exceptional customer support. We do not provide email support for the free version.

What are the minimum requirements?
  • WordPress 3.0+
  • PHP 5 and cURL PHP extension
  • MySQL 5.0+
  • Apache 2+ or Nginx 1.4+
  • Amazon Web Services account
Can you help me about… (an Amazon concern)

We are not otherwise linked to Amazon or Amazon Web Services.
Please direct your specific Amazon questions to Amazon support.

How can I setup default values for a multisite install?

Please test using the UI first, then if all works as expected, try using the following constants.

Edit the wp-config.php file and add any of the following constants:

// AWS Access Key ID

// AWS Secret Access Key

// From mail (optional) must be an Amazon SES validated email
// hard coded email, leave empty or comment out to allow custom setting via panel

// Return path for bounced emails (optional)
// hard coded email, leave empty or comment out to allow custom setting via panel

// ReplyTo (optional) - This will get the replies from the recipients.
// hard coded email, or 'headers' for using the 'replyto' from the headers.
// Leave empty or comment out to allow custom setting via panel

// Hide list of verified emails (optional)

// Hide SES Stats panel (optional)

// Auto activate the plugin for all sites (optional)

When using defines to hardcode your setting, don't forget to define the SES endpoints, too :

define('WP_SES_ENDPOINT', 'email.us-east-1.amazonaws.com');
define('WP_SES_ENDPOINT', 'email.us-west-2.amazonaws.com');
define('WP_SES_ENDPOINT', 'email.eu-west-1.amazonaws.com');
How to do other actions on mail sent?

I was asked to add a hook once mail is sent.
Could be used to log emails, or post email info to an API or database.

wpses_mailsent hook is available for that use.

In your code, define a callback function :

function myMailSentHook($to, $subject, $message, $headers, $attachments ) { … }
// params are the same as the wp_mail() function.

// Then add your action :

Can I create a translation for your plugin?

Yes, please do! It’s easy.

  1. Visit translate.wordpress.org
  2. Choose your locale
  3. Click on Plugins
  4. Search for wp ses
  5. Click on WP SES
  6. Translate!
I installed WP SES on my WP install and was able to get everything tested and the test emails work great. The only thing is I can’t get it to intercept the emails my contact form sends. They end up going through the normal SMTP route and not SES. This is the function for the mail: mail($to, $subject, $message, $header);

Looks like your contact form uses the PHP mail() function instead of the WordPress wp_mail() function, so WP SES won’t be able to send the mail.

Please ask the plugin developer to change it to the following:

I used my ID and secret and repeatedly put them into WP SES, but it didn’t work, I also generated a new ID and secret too, but to no avail it still didn’t work.

Did you use these keys before with another service (like S3), and if so, did they work with that service?

Did you sign up for the Amazon SES service?

Then, please inspectthe error message you get when trying to verify a sender address (at the top of the screen). This message should explain what is wrong with your keys (bad authentication, no SES subscription , etc.).
Amazon also requires that your server time is close enough to Amazon’s server time, so that might be worth checking as well.


Couldn’t fix error so moved on

I posted this error in the support forum and with no answer after a few days I moved on. https://wordpress.org/support/topic/error-512-signaturedoesnotmatch/#post-10579859 SES is working for AWS WorkMail and other uses. This plug-in was the only problem. WP-SES has potential. Hope they figure this out.
Leer todas las 27 reseñas

Colaboradores y desarrolladores

“WP SES” es un software de código abierto. Las siguientes personas han colaborado con este plugin.


Traduce “WP SES” a tu idioma.

¿Interesado en el desarrollo?

Revisa el código , echa un vistazo al repositorio SVN , o suscríbete al log de desarrollo por RSS .

Registro de cambios

0.8.2 – 2019-01-09

  • Add discount for launch of WP Offload SES

0.8.1 – 2018-06-06

  • Added dismissable admin notice that WP SES will soon require PHP 5.5+

0.8 – 2017-12-28

  • WP SES has been acquired by Delicious Brains Inc (big improvements on the way including a pro upgrade)
  • Refreshed UI to be consistent with the latest WordPress styles
  • Updated in-plugin instructions to be much clearer
  • Updated set up documentation
  • Now works with translate.wordpress.org

  • Fix for stats report, thanks to @Ange1Rob0t


  • Fix for use as “must use plugin” in a wpmu setup, thanks to @positonic


  • fix deprecated get_currentuserinfo()


  • PHP 7.0 Compatibility


  • Experimental support for cc: and Bcc: in custom header
  • Domain verification is ok


  • Serbo-Croatian Translation by https://webhostinggeeks.com/
  • Fixed Reply-to: extraction Regexp
  • fixes from hbradleyiii https://wordpress.org/support/topic/bug-with-force-plugin-activation-option
  • better handling of custom headers
  • removed ListVerifiedEmailAddresses deprecated api call, now using ListIdentities.
  • added wpses_mailsent hook
  • several minor fixes.


  • Tries to always auto-activate in answer to https://wordpress.org/support/topic/the-plugin-get-inactive-after-a-few-minutes
  • small fixes


  • fixed sender name format
  • fixed regexp for some header recognition
  • now supports comma separated emails in to: header


  • bad ses lib include fixed
  • Added “force plugin activation” for some use case with IAM credentials


  • Warning if Curl not installed
  • Attachments support for use with Contact Form (finally !)
  • Notice fixed


  • Notice fixed, setup documentation slightly tweaked


  • Experimental “WP Better Email” Plugin compatibility


  • Maintenance release – fixes some notices and old code.


  • Maintenance release – fixes some notices.


  • Added Amazon SES Endpoint selection. EU users can now select EU region.


  • Added Spanish translation, thanks to Andrew of webhostinghub.com


  • Auto activation via WP_SES_AUTOACTIVATE define, see FAQ.


  • Tweaked header parsing thanks to bhansson


  • Added Reply-To
  • Added global WPMU setup (To be fully tested)


  • Updated SES access class
  • WP 3.5.1 compatibility
  • Stats sorting
  • Allow Removal of verified e-mail address
  • Added wp_mail filter
  • “Forgotten password” link is now ok.
  • Various bugfixes


Reference Language is now English.
WP SES est fourni avec les textes en Francais.


Added some functions

  • SES Quota display
  • SES Statistics
  • Can set email return_path
  • Full email test form
  • Can partially de-activate plugin for intensive testing.


First public Beta release

  • Functionnal version
  • Internationnal Version
  • fr_FR and en_US locales


  • Proof of concept