WordPress is an open-source blogging tool and content management system (CMS) based on PHP and MySQL. Its one of the most popular software used to build websites.  Now a days cloud solutions are most popular in hosting field. keeping that in mind, we are integrating Amazon SES with WordPress for SMTP  which is the best choice for ensuring high email deliverability.

By default WordPress are using default PHP mail function to send emails that are generated normally using contact forms plugins. But using this default option has an high chance of email failure or even the successfully send out emails end up in the destination email spam folder. Thats why we are using SMTP authentication in WordPress for get-rid of major chance of email failure.

Amazon SES is a cost-effective email service  for both incoming and outgoing emails developed by Amazon.

Prerequisite for having this setup.

  1.  We already have an Amazon AWS account.
  2.  We already have a live WordPress website.

Now lets proceed with setup. Open AWS console and go the section SES. Click on Domains from left side options >> Click on  Verify Domain.

Enter your domain name in the respective field. Also also recommend to tick the “generate DKIM settings” option and click the “Verify this Domain” option.

You will get a popup window look like above screenshot picture.  Its basically contains different kind of DNS records like MX, CNAME and TXT records that we need to be added at our name servers end. Its necessary for our domains get verified our Amazon SES service. Then only we can start using with Amazon SES service for our websites.

If everything is in order, we will see the domain status as “verified” in AWS SES domain section.

Now, click on “SMTP settings” option available in the amazon AWS SES console >> click ” Create My SMTP credentials” . It will look like below screenshot. Enter the username you would like to use and click “create” button.

It is the user details, we used for SMTP authentication. Once you successfully created the user, if you go the AWS  Identity and Access Management (IAM) console section and click on “users” section, we will see the created user over there. So basically what we have done is created an IAM user having IAM policy for access to the Amazon SES service.

One another point you would like to remember is at the time of SMTP user creation, you will be asked to download a .csv file contains the username and password of the SMTP IAM user we are creating. We need to download that file and save it in your local PC.  If we miss it, we can’t recover it again. Its a one time download option. As I said earlier we have to use this login details in WordPress SMTP plugin section.

No all Amazon SES accounts begin in Sandbox Mode by default.  Which  means  our current SES domain  account will only be allowed to send emails to email addresses that have been verified with Amazon SES >> “Email Address” section.

in order to move our SES from Sandbox Mode to Production Mode, we need to make a service limit increase . Which means, we need to open a ticket with Amazon AWS support team and request them using the default form provided by AWS support.

Click on ” Support” tab available in top right corner >> click support centre >> Click create case >> Choose “service limit increase ” >> Choose “limit type” as ” SES sending limit” from drop down menu. Fill up the form, its pretty straight forward and submit the request. Normally you will receive response from AWS support team with in 2 days.  Take a look at the below screenshot for a reference.

Now lets go the WordPress Admin panel and install plugin named “WP Mail SMTP”, its one of the most popular SMTP plugin used.  Go to the WP Mail SMTP >> Settings section >> under “Mailer” section choose ” other SMTP”  >> Fill up the details using the credentials.csv file of our SMTP IAM user we created and the details shows up in the SES console >> SMTP settings section. Take a look at the screenshot for your reference.

Try to give the from email address in the “WP Mail SMTP” section  as your email address under your domain itself. Normally it will look like  anyuser@yourdomain.com.

This concludes, settings up our WordPress website to use Amazon SES service.  Now if you go the settings  section of “WP Mail SMTP”​ >> Click the “Email test” tab >> any any external email address for example give your gmail address and click send email button. Normally you will get an email at your gmail inbox.

One important thing you need to remember is before changing the amazon SES into production mode from Sandbox mode, we will only be able to send emails to verified emails in SES console.  For verifying any email address you already have, like your gmail address, go to Amazon SES console >> click on “Verify a new email address ” >> Enter your email address >> Click Verify this email address button. Basically what will happen is an email will send by amazon SES with a verify link. You need to go to your email box and click on that link provided to complete the verification. Take a look at the below screenshot for your reference.