One of the most commonly asked questions on WPBeginner is how to fix WordPress not sending email problem.
Many of our beginner level users ask us why their contact form plugin is not sending emails, or why they are not seeing any WordPress notifications.
In this article, we will show you how to fix the WordPress not sending email issue, so your website can send emails more reliably and bypass the spam folder.
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 really 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 (contact form plugin, admin notification, etc), it may not even make it into the recipientβs spam folder let alone 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 SendinBlue, Gmail (G Suite), Office365, Amazon SES, etc.
With that said, letβs take a look at how to fix the WordPress not sending email issue.
Installing 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, 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 setting
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 a SMTP mailing service for your site.
For the sake of this tutorial, weβre going to setup SMTP using Sendinblue. If youβd prefer to use Gmail or Office365, then weβve got instructions on those later in this article as well.
To finish setting up WP Mail SMTP, youβll need to create an account with Sendinblue. Weβll move on to that next, and then come back to finalizing the setup on WP Mail SMTP.
Sending WordPress Emails using Sendinblue
Sendinblue is a popular email service provider. They let you send a large number of emails with high deliverability.
You can use Sendinblue to send up to 300 emails per day for free which is more than enough for most small websites.
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 Sendinblue website to create an account. Click the βSign up freeβ button to set up your account.
Once youβve created an account, youβll see your Sendinblue dashboard. If you didnβt complete your profile during the setup stage, youβll be prompted to do so here.
Thereβs one more step on your website before you can continue the setup with Sendinblue.
Setting Up a Subdomain for Your Website
First, youβll need to set up a subdomain. This is like a separate section of your site. We suggest using mail1.yourdomain.com.
Note: Your WordPress host may not allow you to use mail as your subdomain, which is why weβve put the 1 in there too.
To add your subdomain, log in to your web hosting account and find the Domains section of your control panel.
For the sake of this tutorial, weβll demonstrate how to do that on our example hosting account on Bluehost. After you login, go to Domains Β» Subdomains.
You can then type in your subdomain and click βCreateβ.
If youβre using other hosting companies or if your DNS is managed at domain registrar like Domain.com, Network Solutions, or GoDaddy, then follow their respective instructions.
After you have created the subdomain, you will need to add it in your Sendinblue account.
Adding Your Subdomain to Sendinblue
In your Sendinblue account, go to βSettingsβ then find βYour Sendersβ and click the βConfigureβ button:
Next, click on the βDomainsβ tab and then click the βAdd a New Domainβ button.
Enter the entire subdomain (e.g. mail1.yoursite.com) and check the box next to βI would like to use this domain name to digitally sign my emails (SPF, DKIM, DMARC)β.
Next, click βSaveβ, and youβll see a popup with several DNS records listed.
These lines of code let Sendinblue authorize your domain name.
Tip: Donβt worry if you close this popup by accident. You can get back to it by clicking the βAuthenticate This Domainβ button next to your subdomain:
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.
In Bluehost, you do this by going to Domains Β» My Domains then clicking βManageβ next to your domain.
Youβll need to add 3 of TXT records provided by Sendinblue here.
First, scroll down to find the TXT section of your DNS records. It will look something like this:
Then, click βAdd Recordβ.
Complete the first record as follows:
Host Record: mail._domainkey.mail1
Record Type: TXT
TXT Value: Copy this from Sendinblue.
TTL: 1 day
Tips: Host Record might be called Host or Name by your web host. Change mail1 if you used something different for your subdomain. Record Type may not be required. TXT Value might also be called TXT data: itβs the first, long piece of code in the Sendinblue details. TTL could be 24 hours or 86400 seconds (both are equivalent to 1 day). If youβre using GoDaddy, set it to 1 hour.
Once you have added the first record, click βSaveβ.
Next, you need to add the second record. Complete it as follows:
Host Record: mail1
Record Type: TXT
TXT Value: v=spf1 include:spf.sendinblue.com mx ~all
TTL: 1 day
Once youβre done, click βSaveβ.
After saving that, you need to add the third record. Complete it as follows:
Host Record: mail1
Record Type: TXT
TXT Value: Copy this from Sendinblue. Itβs the third piece of code.
TTL: 1 day
Once youβre done, go ahead and save that record too.
Warning: Sendinblue also has a fourth piece of code for a DMARC record. You donβt need this, and we strongly recommend skipping it unless youβre experienced with DMARC configuration.
After youβve added your records, go back to Sendinblue. For each record, click the button βRecord Added. Please Verify It.β It may take 24-48 hours before Sendinblue is able to verify your records, but itβs often much quicker.
If nothing happens when you click that button, the records canβt yet be verified. Check again later and see if theyβve been verified. Once they have, youβll see the word βConfiguredβ next to the records in green:
You can keep going with this tutorial while you wait for the verification to take place.
Finishing Setting Up WP Mail SMTP to Use Sendinblue
Go back to your WP Mail SMTP settings in your WordPress dashboard. You should have already entered the From Email and From Name, but if not, you can do that now.
Leave the βReturn Pathβ checkbox unchecked as this option isnβt used by Sendinblue.
Next, click on βSendinblueβ for your mailer.
Youβll need go to your Sendinblue account to find your API key. Just click on the link below the βAPI Keyβ box and your Sendinblue account dashboard will open up at the right place, in a new tab.
Copy the v3 API key from this page.
Congratulations. Youβve now set everything up. The final step is to send a test email to make sure everything is working.
Go to the βEmail Testβ tab of WP Mail SMTP and 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 Sendinblue 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 WordPress Email Issue
As you can see from the WP Mail SMTP pluginβs list of mailer options, you donβt have to use Sendinblue. While itβs our top free recommendation, there are other options that you can use including Office 365, Gmail / G Suite, Amazon SES, etc.
Using Gmail or G Suite with WP Mail SMTP to Fix WordPress Emails
If you have a Gmail or G Suite account, 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 G Suite, set up WP Mail SMTP as shown above, and then click the βGoogleβ option for your mailer.
You will need to check the βReturn Pathβ box.
After that you will be asked to enter a βClient IDβ and βClient Secretβ. To get these details, youβll need to create a web application in your Google account. Donβt worry if that sounds a bit daunting. You can find full instructions in this article on using Gmail to send your WordPress emails.
Note: You can use this process with a regular Gmail account, but your email deliverability will be much better if you are using G Suite. See our guide on how to setup a professional email address with Gmail and G Suite.
There are a couple of key drawbacks to using Gmail or G Suite, 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 Office 365 / Outlook 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 βOther SMTPβ option. This will open up a form to complete. Fill it out using the following settings:
SMTP Host: smtp.office365.com
Encryption: TLS
SMTP Port: 587
Auto TLS: (leave switched on)
Authentication: (leave switched on)
SMTP Username: Your Office 365 account email address
SMTP Password: Your Office 365 account password
A key problem with this method is that it requires storing your password in plain text within WordPress. This isnβt secure and your password will be visible to any other administrators on your account. You can use the instructions in the WP Mail SMTP app to record it in your wp-config.php file instead.
For more details, see the detailed guide on how to setup 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βr interested in setting up Amazon SES with WordPress, then see the full instructions on how to setup Amazon SES with WordPress.
Whatever mailer you decide to use, always remember to use the βTest Emailβ tab 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.
We hope this article helped you learn how to fix WordPress not sending email issue. You may also want to see our list of the most common WordPress errors and how to fix them.
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.