Your WordPress site is failing to send emails. Contact form submissions are disappearing, and important notifications never arrive.
You’re not alone, and the problem isn’t WordPress. It’s how websites typically send emails.
In this guide, we will reveal the real issue behind why WordPress isn’t sending emails and show you how to fix it using SMTP, the industry standard for reliable email delivery.
Why You’re Not Getting Emails From Your WordPress Site
The most common reason for emails going missing is that your WordPress hosting server is not properly configured to use the PHP mail() function.
Even if your hosting is configured to use it, many email service providers, like Gmail and others, use a variety of tools to reduce email spam. These tools try to detect that an email is coming from the location that it claims to be from.
Emails sent by WordPress websites often fail this test.
This means that when an email is sent out from your WordPress site (from a contact form plugin, admin notification, etc), it may not even make it into the recipient’s spam folder, let alone the inbox.
This is why we recommend not using WordPress to send your email newsletter.
This is also the reason why we recommend everyone to use SMTP for sending emails in WordPress.
What Is SMTP?
SMTP (Simple Mail Transfer Protocol) is the industry standard for sending emails.
Unlike the PHP mail() function, SMTP uses proper authentication, which leads to high email deliverability.
WordPress has a WP Mail SMTP plugin that configures your WordPress site to send emails using SMTP instead of the PHP mail() function.
You can use it to connect with any popular SMTP services like SendLayer, Brevo (formerly Sendinblue), Gmail (Google Workspace), Amazon SES, and more.
With that said, let’s take a look at how to fix the WordPress not sending email issue.
Alternative: If you use WooCommerce and your order emails aren’t being delivered, then you read our guide on how to fix WooCommerce not sending order email issue instead.
Video Tutorial
If you’d prefer written instructions, just keep reading. You can use the quick links below to navigate through this article:
Step 1: Install the WP Mail SMTP Plugin
Whatever SMTP service you choose, you’ll need to have the WP Mail SMTP plugin installed on your site. This lets you switch WordPress from using the built-in PHP mail() function to using your SMTP service.
First, install and activate the WP Mail SMTP plugin. If you’re not sure how, then see our step-by-step guide on how to install a WordPress plugin.
Next, click on ‘WP Mail SMTP’ in your WordPress dashboard to configure the plugin settings.
You will need to start by entering the name and business email address you want your site’s emails to come from.
Make sure you use the same email address here that you’ll be using for your SMTP mailing service.
You can choose to force emails to use this name and email address, even if other plugins, like WPForms, have different settings. WP Mail SMTP will override the other plugins’ settings.
After that, you need to choose an SMTP mailing service for your site. For this tutorial, we are going to set up SMTP using SendLayer.
To finish setting up WP Mail SMTP, you’ll need to create an account with SendLayer. We will move on to that next and then come back to finalizing the setup on WP Mail SMTP, so make sure to keep this tab open.
Step 2: Set Up Your SMTP Mailing Service
SendLayer is a reliable email service provider. They let you send a large number of emails with high deliverability.
You can use SendLayer to send up to 200 emails for free, which is more than enough for most small websites to get started.
These could be emails from your contact form, new user account details, password recovery emails, or any other emails sent through your WordPress site.
First, you’ll need to go to the SendLayer website to create an account. On the Pricing page, click on the ‘Try our SendLayer free trial (send up to 200 emails)’ link to set up your account.
Once you’ve created an account, you’ll see your SendLayer dashboard.
Now that you have a SendLayer account, let’s set up your email provider with WordPress.
Step 3: Connect Your WordPress Website with SendLayer
Before you can send emails with SendLayer, you need to authorize your domain.
This proves to email servers that you are the confirmed owner of your sending domain and that your emails are sent from a legitimate source.
To authorize your domain, click the orange ‘Add Domain’ button from the SendLayer dashboard.
On the next page, simply type your domain name into the field provided.
Then, click on the ‘Add Domain’ button.
Note: With other mailing services like Brevo (formerly Sendinblue), you need to set up a subdomain for your website first. But SendLayer will automatically add the subdomain to the sender domain’s DNS records.
So, you don’t need to add an extra subdomain when registering the domain.
Once you’ve added your domain, SendLayer will show you 5 DNS records that you need to add to your domain’s DNS record settings.
These lines of code let SendLayer authorize your domain name.
You’ll need to add these DNS records to your WordPress site. This may seem complicated, but all you need to do is copy and paste them into the right place.
For the sake of this tutorial, we will demonstrate our example using our hosting account on Bluehost.
If you are using other hosting companies or if your DNS is managed at a domain registrar like Domain.com, Network Solutions, or GoDaddy, then follow their respective instructions.
First, open up a new browser tab and log in to your WordPress hosting account. Then, find your domain’s DNS records.
In Bluehost, you do this by going to ‘Domains.’ Then, click ‘Settings’ next to the domain you’d like to connect with SendLayer.
On the next page, scroll down to the ‘Advanced Tools’ section.
After that, click the ‘Manage’ button next to Advanced DNS Records.
You will see a warning message saying that DNS records should be edited by an advanced user. Don’t worry about this message, as the process for this is pretty easy.
Go ahead and click ‘Continue’ to proceed.
You will now arrive at the Manage Advanced DNS Records page.
To start, click the ‘+ Add Record’ button.
Now, let’s start adding the DNS records that SendLayer has provided.
First, select the type of the DNS record. In this case, we will use CNAME for the first record.
In the ‘Refers to’ section, click ‘Other Host.’ You will pick this same option for all of your DNS records later on.
Scrolling down, you will see three fields: Host Name, Alias, and TTL.
The Host Name should be filled with the value in ‘Hostname’ provided by SendLayer. The Alias should be filled with the value in ‘Value.’ As for the TTL, you can leave it at 15 minutes.
The screenshot below shows what our screen looked like when we added our first CNAME record.
Once you’re done, just click ‘Add.’
You can repeat these steps for all of the DNS records (both CNAME and TXT).
When adding the TXT record, make sure to paste the ‘Hostname’ value from SendLayer into the ‘Host Name’ field and the one from ‘Value’ into the ‘TXT Value’ field.
Here’s what it looks like:
After you’ve added your records, go back to SendLayer and check the box next to ‘I have added these DNS records and am ready to proceed.’
Then, hit the ‘Verify DNS Records’ button.
It may take 24-48 hours before SendLayer is able to verify your records. In our experience, it took several hours.
If nothing happens when you click that button, the records can’t yet be verified. You can check again later to see if they’ve been verified by going to ‘Settings’ and navigating to the ‘DNS Records & Settings’ tab from your SendLayer dashboard.
Here, you’ll find a list of all of your DNS records in one place. Once your domain has been successfully authorized, you’ll see green checkmarks next to each DNS record in the ‘Status’ column.
You can keep going with this tutorial while you wait for the authorization to take place.
Step 4: Finish Setting Up WP Mail SMTP to Use SendLayer
Let’s finish the setup. First, go to your SendLayer account to find your API key.
From the SendLayer dashboard, simply go to the Settings » API Keys page. Here, you’ll see a default API key that was generated when you authorized your domain in SendLayer.
You can copy the API key from this page by clicking on the copy icon.
Like so:
With that done, you can head back to your WP Mail SMTP setup wizard tab.
Then, paste the API key where appropriate.
Congratulations. You’ve now set everything up. The final step is to send a test email to make sure everything is working.
Go to WP Mail SMTP » Tools. In the ‘Email Test’ tab, enter an email address to send an email to. This will default to the site’s admin email. Click ‘Send Email’.
You should see the message ‘Test HTML email was sent successfully!’
Check your inbox to see whether it’s arrived. It’ll look like this:
Note: If your SendLayer account isn’t yet activated, you’ll get the message: [permission_denied]: Unable to send email. Your SMTP account is not yet activated
.
Alternative Ways to Fixing the WordPress Not Sending Email Issue
As you can see from the WP Mail SMTP plugin’s list of mailer options, you don’t have to use SendLayer. While it’s our top free recommendation, there are other options that you can use, including Microsoft 365, Gmail (Google Workspace), Amazon SES, etc.
Using Gmail or Google Workspace With WP Mail SMTP to Fix WordPress Emails
If you have Gmail, then you can use that to send your emails. You won’t need to enter your email login details in WordPress when you’re using the WP Mail SMTP plugin.
To use Gmail or Google Workspace, set up WP Mail SMTP as shown above, and then click the ‘Google / Gmail’ option for your mailer.
Next, you can configure the mailer settings by using WP Mail SMTP’s one-click setup.
This method doesn’t require you to create your own app, which is much easier. You only need to sign in to your Gmail account and click ‘Save Settings.’
There are a couple of key drawbacks to using your professional Gmail or Google Workspace, however.
One is that you may need to contact your web host to get them to install the right certificate to get it working.
Another is that if you change the email address in the future, you’ll need to go through the entire process again. This will include creating a new web application.
Using Microsoft 365 With WP Mail SMTP to Fix WordPress Emails
If you use Microsoft Office 365 or Outlook for your regular email account, then you can also use that to send out emails through WordPress. This isn’t a recommended option, though, because it’s less secure.
You’ll need to set up WP Mail SMTP as above, then click the ‘365 / Outlook’ option when choosing your SMTP mailer. Then, you need to register an app on Microsoft Azure so that you can fill out the fields below.
For more details, see the detailed guide on how to set up Outlook with WP Mail SMTP.
Using Amazon SES with WP Mail SMTP to Fix WordPress Emails
Amazon AWS platform has a Simple Email Service (SES) that you can use to fix the WordPress email issue.
The best part about Amazon is that it lets you send up to 62,000 emails every month for free. The downside is that the setup is a bit more challenging for beginners, which is why we don’t recommend it as our preferred option.
But as you can imagine, a lot of professionals and experts use Amazon SES for their WordPress email SMTP service, so we couldn’t write an article without mentioning it.
If you’re interested in setting up Amazon SES with WordPress, then see the full instructions on how to set up Amazon SES with WordPress.
Whatever mailer you decide to use, always remember to use the ‘Test Email’ feature to ensure that emails are being successfully sent.
You must make sure to check your inbox, too, and confirm that you’ve received the test email.
Experiencing Other WordPress Errors? Check Out These Guides
WordPress isn’t perfect, and you may encounter some common errors from time to time. Here are some tutorials you can check out to solve them:
- How to Fix Add Media Button Not Working in WordPress
- How to Fix Image Upload Issue in WordPress (Step by Step)
- How to Fix the Mixed Content Error in WordPress (Step by Step)
- How to Fix WordPress Posts Returning 404 Error (Step by Step)
- How to Fix the “WordPress Database Error Disk Full” Error
- How to Fix the Error Establishing a Database Connection in WordPress
- How to Fix “Sorry, This File Type Is Not Permitted for Security Reasons” Error in WordPress
- How to Fix the 502 Bad Gateway Error in WordPress
- How to Fix WordPress Search Not Working
We hope this article helped you learn how to fix the WordPress not sending email issue. You may also want to see our list of the most common WordPress block editor problems or our picks of the best WooCommerce email customizer plugins.
If you liked this article, then please subscribe to our YouTube Channel for WordPress video tutorials. You can also find us on Twitter and Facebook.
Syed Balkhi says
Hey WPBeginner readers,
Did you know you can win exciting prizes by commenting on WPBeginner?
Every month, our top blog commenters will win HUGE rewards, including premium WordPress plugin licenses and cash prizes.
You can get more details about the contest from here.
Start sharing your thoughts below to stand a chance to win!
John Little says
Found out why mine wasn’t working. My provider blocks (well prevents pass though traffic) if coming from VPN. All my testing was done with the VPN on.
WPBeginner Support says
Thanks for sharing that should anyone else be running a VPN and have the same issue
Admin
Jiří Vaněk says
Im using WP Forms paid version with WP Mail SMTP in free version and this combination work pretty well together.
Jiří Vaněk says
Currently, the most problems that I have solved in the last year with sending emails on WordPress was the missing DNS record for SPF and DKIM. Specifically, it is most evident on the side of Google and Gmail, which rejects such emails. It is therefore a good idea to also focus on SPF and DKIM records for the domain.
WPBeginner Support says
If the method in this guide does not work then that could certainly be something to check
Admin
Moinuddin Waheed says
Sending emails and being hundred percent assured that it has got delivered is a must for any kind of online businesses.
This is where comes the role of this excellent plugin called wp SMTP mail which ensures that the email that has been sent has also been delivered to the recipient.
I have implemented wp mail SMTP to my websites and planning to use on all my wordpress websites.
Carol says
The best answer so far! I have been looking for this answer for 1 year!
WPBeginner Support says
Glad to hear our guide was helpful!
Admin
Abubakar Bala says
Wow! WP Beginner is my number 1 go to destination for WordPress bugs. I have been facing serious issues with the issues discussed in this article. Thank you so much for these detailed solutions.
WPBeginner Support says
Glad to hear our guide was helpful!
Admin
Joe says
What is the purpose of setting up the mail1 subdomain?
Bren says
Is there a code-only alternative? I’d like to avoid using plugins where possible.
WPBeginner Support says
We do not have any beginner-friendly methods for adding SMTP without a plugin, for not using a plugin, we would recommend taking a look at our site below that covers common concerns for using multiple plugins and why they aren’t as prevalent as they seem:
https://www.wpbeginner.com/opinion/how-many-wordpress-plugins-should-you-install-on-your-site
Admin
Tim says
I understand having to set up the WP Mail SMTP Plugin. That’s fabulous.
I suppose what I don’t understand is if I have SMTP with my hosting account and I can send through that, why use a third-party SMTP provider? Did I miss something? What benefit does the third-party provide? Thanks.
WPBeginner Support says
It would be a personal preference if you use a third party as we recommend or some hosting providers do not have the option to use SMTP through them.
Admin
Qudus says
Thank you for this great article.
I followed every step successfully until I got to AUTHENTICATE THIS DORMAIN.
when I clicked on manage domains, I couldn’t find any DNS record or TXT for me to add the codes from Sendinblue.
Please what do I do?
WPBeginner Support says
If you do not see where you can add the records, you would want to reach out to your hosting provider and they should be able to assist.
Admin
Brittany Pelegrino says
Thank you so much for this awesome article! I was wondering if you could advise on where you need to point your subdomain to when creating the DNS record?
WPBeginner Support says
Unless your hosting provider requires it, you shouldn’t need to point the subdomain to a specific location on your site or anywhere at all other than the records from our guide.
Admin
Oscar says
hey i have the setup correct the test email went through however the email from the contact form was sent to promotions. what can i do to fix this?
WPBeginner Support says
That would be determined by the email provider being used and not something the plugin would change sadly.
Admin
Michael says
Tnx a lot for your guide. After not less than 10 different attempts to make my emails functionable, this did it. THANKS!
WPBeginner Support says
Glad our guide was helpful
Admin
Paul says
What if email domain and web site domain are different? In your instructions and also the instructions of sendinblue it was confusing under which of the two domains am I putting the records, getting authorization, etc.
WPBeginner Support says
You would want to set up Sendinblue for the domain that is in the email address
Admin
Paul says
Excuse my SMTP ignorance but can I use Sendinblue for sending email from that email address from my wordpress account if I already have that email account functioning elsewhere (in my case outlook)?
WPBeginner Support says
Yes, you can customize the address you send the email from in Sendinblue.
Admin
Marlene Elizabeth says
It worked with the WP Mail SMTP Configuration perfectly. Literally just had to changed the E-Mail. Thanks.
WPBeginner Support says
Glad our guide was helpful
Admin
Lisa says
Two days trying to resolve wordpress not sending attachment bigger than 1mb; nothing works.
Resolved in 1 minute thanks to you.
WPBeginner Support says
Glad our guide was helpful
Admin
Martin N says
Is there any way to do this but without a plugin?
WPBeginner Support says
We do not have a recommended method to set this up without a plugin.
Admin
eva says
Hi,i follow your steps. but my WordPress still don’t send an email now. I think i set up WP Mail SMTP successfully and test my private email, but when my clients subscribed, placed an order, canceled, and order, i didn’t receive a notification, either my clients. i have checked with my host server several times, they don’t know how to help me, and only clients’ reset passwords email was sent successfully after their help. Now they think there are must be something wrong with my woo commerce plugin or my theme.
I don’t know how to deal with this problem now, can you give me your suggestion?
WPBeginner Support says
You may want to check with the support for the plugin to ensure they don’t override the sending method for emails.
Admin
Harold says
I was able to use sindInBlue and get it to work. Whenever a customer fills out my form, I get an email with all the customers information. They only problem I have is that I would like to send a “confirmation” email to my customers email address, stating that we received their email and will respond within 24 hours.
WPBeginner Support says
You would want to check with the options in your contact form for that.
Admin
Scott says
In the tutorial, there is the line “Open up a new browser tab and log back into your web hosting account. You need to find your domain and open up the DNS records. ”
Do I open up the DNS of my domain, or the newly created subdomain?
WPBeginner Support says
You would open your primary domain’s DNS and add the records that Sendinblue has given you to that.
Admin
Victoria says
I was really struggling with this issue and your article really helped – thank you!
WPBeginner Support says
You’re welcome, glad our guide helped
Admin
Tulay Girard says
Great tutorial. Thank you!
WPBeginner Support says
You’re welcome
Admin
Tolu says
I thought this guide would help as my issue seemed similar but after going through this guide, im still not sure how to fix my issue. I’ve been trying to change the Admin email so I can receive order details. when I try to change it says the new email will not be recognized until the confirmation email (sent to old) is accepted. But that confirmation email is nowhere to be found. How to I change the admin email?
WPBeginner Support says
If the message is not caught in your spam folder when you resent it, we would recommend taking a look at our guide below:
https://www.wpbeginner.com/beginners-guide/how-to-change-the-wordpress-admin-email
Admin
Rudy Ramkissoon says
I’m receiving emails from non gmail accounts and getting error. Like the following below.
Address not foundYour message wasn’t delivered to example@example.com because the domain example.com couldn’t be found. Check for typos or unnecessary spaces and try again.
What can cause this?
WPBeginner Support says
If the user did not type in their email address correctly would be the most common reason.
Admin
J H says
I followed this guide and got “test email sent successfully” but I didn’t receive an email on my email account, how come?
WPBeginner Support says
There are multiple possible reasons, you may want to ensure that the email did not get caught in your spam folder for a starting point
Admin
Joel says
Thank You so very much for the step by step guidance… Was using the same plugin earlier and it stopped working… Following your instructions, have signed up for Sendinblue & now it works like a charm.
I have always followed most of the instructions from your blog… Thank You
WPBeginner Support says
Glad our guide was able to help
Admin
lori says
Hello, I’m a little confused. When I set up our site I contacted the web host (BlueHost) and they set up our email accounts using G-Suite so that we could use @ourdomain for our emails. They said it would be complicated to do, so they set it up without explaining the details. We pay for each email account set up this way. After reading this post, I’m wondering if I’m also supposed to set up the WP Mail SMTP plugin. Do I need to go back and set up this plugin also for the best email performance, or would that not apply in our situation? Thank you.
WPBeginner Support says
We would recommend using SMTP to send your emails still as having a custom email address does not change how WordPress sends emails.
Admin
John says
Thanks for this but why do we need to create a subdomain?
WPBeginner Support says
To ensure that connections going there are for email and not possible site visitors
Admin
Jack says
This was super helpful, super easy to follow and fixed my issue Thanks!
WPBeginner Support says
You’re welcome, glad our guide was helpful
Admin
Daniel says
You guys really help me out . I really need this information.
WPBeginner Support says
Glad we could help you with our guide
Admin
Bob says
Thank you for the guidance..
WPBeginner Support says
You’re welcome
Admin
Julie says
Thank you for the guidance..
WPBeginner Support says
You’re welcome
Admin
Peter says
Thank you for the guidance.
WPBeginner Support says
You’re welcome
Admin
Corinne says
Followed along on how to fix the issue of WordPress not sending emails. Worked great until about half way through. What was on the website to what was actually happening totally off from each other. Did not successfully complete the task and not sure what to do next. Please update the help on the website. Thanks!!
WPBeginner Support says
We will certainly take a look at what needs to be updated in this article.
Admin
Kate says
Thanks for the tutorial, it has changed a bit in google dev since you wrote it but I got there in the end. And emails are being sent and received!
WPBeginner Support says
You’re welcome, it’s difficult to keep up with Google’s changes but glad our article could still be helpful
Admin
Shahbaaz says
I am not receiving WordPress password recovery emails or WordPress confirm emails. What should I do ? I am using Google cloud hosting trial. I am a beginner. Please help!
WPBeginner Support says
It may be the method that WordPress is sending emails, you can change the method your site sends emails using our article here: https://www.wpbeginner.com/plugins/how-to-send-email-in-wordpress-using-the-gmail-smtp-server/
Admin
Carla says
Hi there, thanks for this amazing tutorial and so well explained – However I’m still unable to overcome the problem on the main settings. I’m using contactform7 and forms aren’t working duo to this issue. I’m not receiving any email at all to be able to confirm the address change.
WPBeginner Support says
If you set up SMTP properly and the emails are not sending correctly then you would want to reach out to your form’s support to ensure there isn’t an issue with the form itself.
Admin
Emmanuel says
I am currently using Google Gmail setup and was able to follow the steps to create the Gmail api to connect the Client ID and Secret ID. I can test the redirection URL and login to Google all right. However, I’m unable to send a Test Email. All of sudden the “Force From Email” check box is also grayed out and uncheck. I can’t check that box. Please help
WPBeginner Support says
For issues with the plugin, please reach out to the plugin’s support through the support forum and they should be able to assist.
Admin
Adi Hermanto says
Thanks for brilliant tutorial mate, really did help solve an issue which wasted hours of my time.
WPBeginner Support says
Glad our article could help solve the problem
Admin
Ankit says
Thanks !!!
Which theme are you using?
WPBeginner Support says
Hi Ankit,
We are using a custom theme made on top of Genesis framework.
Admin
Penina says
Thank you for the tutorial. It works so well!
mudasir abbas turi says
Hello dear thank you very much i got success
Pugazhendhi says
I got an error message 403 forbidden at the last stage of setting up the gmail smtp.Can you suggest me something so that I can resolve it to send an email of the enquiry form that i have created using contact form 7.
Joel says
I installed the WP Mail SMTP plugin and although you made a great effort to demonstrate connectivity with mailgun, your info was not necessarily dated with Godaddy’s cpanel. I decided to go with Sendgrid which was a much easier set process than mailgun.
brad says
i successfully installed WP Mail SMTP and got the confirmation test email. However, I don’t know how to attach it to my website. The current contact form in zerif lite gives me an error message. Please advise. Thanks.
WPBeginner Support says
Hi Brad,
Please contact your theme support. Alternately you can use WPForms Lite to add a contact form to your website.
Admin
Jason says
I was able to set up WP Mail SMTP to work with Contact Form 7, but in all emails we receive they always show my gmail as the sender but not the real senders email. Is there anyway to fix this problem?
Josin says
I get the following error when I try to authorize the plugin to send mails using Gmail.
“The Web server is configured to not list the contents of this directory or you do not have enough permissions to access the resource”
How can I tackle this error?
Alicia says
I tried twice to follow these directions and everything was going according to plan… But then at the end… and error message! Anyone know what this means?
The OAuth client was not found.
Will says
My problem is that wordpress won’t send emails to or from an address that is coming from my domain name. E.g. @domain.com. But it will send from any other email address type.