Are you not receiving email notifications from your WordPress contact forms? Setting up Simple Mail Transfer Protocol (SMTP) on your site is the best choice for ensuring high email deliverability.
In this post, we’ll show you how to set up WordPress SMTP using Amazon SES and the WP Mail SMTP plugin.
Why You’re Not Receiving Notifications
WordPress uses the PHP mail function to send emails that are generated by a contact form plugin like WPForms. Often, WordPress unmanaged or managed WordPress hosting servers are not configured to use the PHP mail function, so chances are your WordPress emails, including the WPForms notifications, won’t even make into the spam folder.
This is why we recommend using SMTP to send emails from WordPress instead of using the default PHP mail function. SMTP (Simple Mail Transfer Protocol) is an industry standard way to send emails that use proper authentication method to ensure email deliverability.
Our recommended mailer is Brevo. It’s easy to set up and doesn’t require a credit card like Amazon SES. Check out the guide on how to set up the Brevo Mailer in SMTP.
If you’re pretty technical and still want to use Amazon SES with SMTP, we’ve got you covered next.
What Is Amazon SES?
While there are lots of different ways to set up WordPress SMTP on your site, most options place a limit on the number of emails you can send. Chances are you’ll stop receiving notifications if WordPress is sending too many emails in a short period of time.
This is where Amazon SES (Simple Email Service) comes in.
Amazon SES is a cost-effective email service built on the reliable and scalable infrastructure developed by Amazon.com. It ensures high email deliverability and is more reliable than sending out emails from your hosting server. Plus they also offer some tools for email marketing.
Keep in mind that in order to use Amazon SES, you must have an SSL certificate installed on your WordPress site. It’s also a good idea to have a domain-specific email address (ie [email protected]) to use as the From Email when setting up WP Mail SMTP on your WordPress site.
Note: This tutorial’s method requires you create a free Amazon Web Services (AWS) tier account that expires in 12 months after signing up. Though you’re creating a free account, it requires you to enter your billing address and credit card information during the registration process. However, you will not be charged unless your usage exceeds the free tier limits. You can learn more about the AWS free tier offer here.
Next, we’ll be using the WP Mail SMTP plugin‘s Amazon SES Mailer to set up WordPress SMTP on your site. Amazon SES is available with the WP Mail SMTP Pro license or higher.
How to Set Up WordPress SMTP Using Amazon SES
Here’s every step you need to set up the Amazon SES mailer in WP Mail SMTP.
Step 1. Create a Free AWS Account
If you already have an AWS account, you can skip this step.
If you don’t have an AWS account, sign up for a free account with AWS here.
While your account is free and this mailer setup does not require the use of any paid services, AWS will still require that you enter a credit card when setting up an account.
Step 2. Select Your Region
Once you sign up for your AWS account, their system will try to determine your region based off your address. If AWS is unsure of your exact region, you’ll be asked to select the next closest one.
Step 3. Create an IAM User
Now that you’ve created an Amazon Web Services account, the next step is to set up an IAM User. This will provide you with access keys you’ll need later.
First, follow this link to open the AWA IAM Users page and sign in.
Once you’re signed in to the dashboard, click the blue Add user button.
Next, set up a new user. In the User name field, you can add any name you’d like. However, we recommend using the following name format:
For example, for WPForms.com we would use the user name:
Plus, if you need to set up additional users down the road, this will make it easy to keep track of which site is connected to each user.
After that, next to the Access type check the Programmatic access box
After that, click on the Next: Permissions button to proceed.
Step 4. Configure IAM User Setting Permissions
First, select Attach existing policies directly from the top row of boxes.
Then, type “AmazonSESFullAccess” (without the quotes) into the search bar. This should leave only one result, named “AmazonSESFullAccess”. Be sure to check the box next to this option so that this permission is added for the user.
When you’re done on this page, click the Next: tags button.
Skip the next page and click the Next: Review button.
Step 5. Review Your User Details
On this page you’ll be shown all the details you’ve chosen for this user. Double check that everything looks correct, and then click the Create user button.
AWS will now display a success message. You’ll also see an Access Key ID and Secret Access Key for your user.
Note: You will not be able to see this Access Key ID and Secret Access Key again once you close this page, so be sure to download a CSV with these details and/or copy them into a safe location.
You can also keep this tab/window open for now — we’ll be using these keys again later.
Step 6. Switch to AWS Production Mode
All Amazon SES accounts begin in Sandbox Mode by default. This means that your account will only be allowed to send emails to email addresses that have been verified with Amazon SES.
In this step, we’ll show you how to move from Sandbox Mode to Production Mode so that you can send emails to anyone.
First, you’ll need to click this link and create a request with Amazon Web Services.
In the top row of boxes, be sure that the Service limit increase box is selected.
Next, you’ll need to fill out the Case Classification form. This is an important step because it’s what Amazon uses to try and keep spammers from using their system. Within this form, you’re basically proving to Amazon SES that your site will be sending emails for legitimate purposes.
We’ve shared all of the details you’ll need for this form below:
- Limit Type: SES Sending Limits
- Mail Type: Transactional
- Website URL: Your site’s home URL
- My email-sending complies with the AWS Service Terms and AUP: Yes
- I only send to recipients who have specifically requested my mail: Yes
- I have a process to handle bounces and complaints: Yes
- Region: Choose the same region as when you set up your AWS account (whichever is closest to where your site’s server is located).
- Limit: Desired Daily Sending Quota
- New limit value: Estimate the maximum number of emails you expect your site to send per day.
After that, you’ll need to fill out the Use Case Description. In this field, share details about what kind of site you have and why you need to send out emails. Be sure to include the type of emails that your site will be sending (for example, confirmations of form submissions, purchase receipts, etc).
It’s a good idea to be detailed in your description because Amazon may reject your request if it doesn’t feel enough information was provided.
Once you’ve entered all of your details, click the Submit button.
After that, you should receive 2 emails from Amazon Web Services. Both will confirm that a new case has been created.
Normally, AWS will review your request and let you know the result within one business day. In the meantime, you can continue your WP Mail SMTP and Amazon SES mailer setup in the next steps.
Step 6. Install the WP Mail SMTP Plugin
While you’re waiting for AWS to review your case submission, you can install the WP Mail SMTP on your WordPress site.
To get started, install and activate WP Mail SMTP on your site.
Step 7. Set Up WP Mail SMTP + Amazon SES
Once you’ve installed and activated the plugin, go to WP Mail SMTP » Settings.
At the top of the Settings page, you’ll see a From Email option. For the From Email, you can use any valid email address. However, for best results we recommend using a domain-specific email address (ie [email protected]).
We strongly recommend that you also check the box labeled Force From Email. Since the From Emails from anything on your site that sends email must match this email address in order for SMTP to work, this will save you the trouble of editing the WordPress email settings throughout your site (in all form emails, etc).
Below the From Email, you can set the From Name. This is the name associated with emails sent out and will be set to your site’s name by default. You can adjust this to any value you’d like and check the Force From Name option if you’d like to apply this setting site-wide.
Next, scroll to the Mailer field and select the Amazon SES option.
We also recommend checking the optional Return Path checkbox to Set the return-path to match the From Email. With this enabled, you’ll be emailed if any messages bounce as a result of issues with the recipient’s email.
Once you’ve chosen the Amazon SES mailer, you should see a new section appear titled Amazon SES. Here, you’ll need to add the access keys you created in your AWS account earlier. Go ahead and copy in your Access Key ID and Secret Access Key.
Once you’ve entered both of your keys, you can check the Region field. A region will already be pre-selected for you based on where your site’s hosting server is located, so make sure that this is correct and matches what you picked in Amazon SES.
Now that you’ve added all of your WP Mail SMTP settings, click Save Settings.
After you’ve saved, an additional setting will appear: Verified Emails. This is where you will add any emails that you might like to use as the From Email on your site.
To add a new verified From Email, click Add an Email Address.
Now, an overlay will appear where you can add one email address at a time.
Next, click the Send Verification Email button. You’ll see a notice asking you to check that email’s inbox for a verification email.
You’ll get an email from Amazon Web Services with a verification link. Click this link within 24 hours in order to verify this email address.
After you’ve successfully verified the email address, you can return to your site’s WP Mail SMTP settings and refresh the page. All verified emails are displayed here.
Step 8. Send a Test Email
You’ve done a great job so far.
Now that your WP Mail SMTP settings are ready and any From Emails you want to use have been verified, it’s super important to send a test email to ensure that everything is working properly.
To do this, go to Settings » WP Mail SMTP and open the Email Test tab.
The Send To field is filled in with your site’s admin email. However, you can change this to any email address you’d like (that belongs to you and that you have access to).
For HTML, you can also click the toggle off if you’d prefer to send a plain text email. For most sites, though, it will make the most sense to test an HTML email (keep the default).
Once this page is all ready, click the Send Email button.
After sending the email, you should see a success message.
If you go to the inbox of that email address, you should see the test email from WP Mail SMTP.
Congrats! You’re done.
That’s it! You now know how to set up the Amazon SES Mailer in WP Mail SMTP. Your site should be sending WordPress emails with Amazon SES successfully now and your form notifications will be delivered reliably.
Now that your form notifications are working, you may want to check out our post on how to create multiple form notifications in WordPress forms to send more than one email notice when someone fills out a form.
So what are you waiting for? Get started with the most powerful WordPress forms plugin today.