Beginner's Guide for WordPress / Start your WordPress Blog in minutes

How to Fix WordPress Not Sending Email Issue

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.

How to fix the WordPress not sending email issue

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.

Video Tutorial

Subscribe to WPBeginner

If you’d prefer written instructions, just keep reading.

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 settings.

The WP Mail SMTP settings page in your WordPress dashboard

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.

Entering the name and email address that you want your WordPress emails to come from

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.

Select Sendinblue as your mailer in WP Mail SMTP

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.

The Sendinblue dashboard

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’.

Adding a subdomain in WordPress

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:

Configuring your sender settings in Sendinblue

Next, click on the ‘Domains’ tab and then click the ‘Add a New Domain’ button.

Adding a new domain in Sendinblue

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)”.

Add your subdomain and check the box

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:

The Authenticate Domain button which lets you go back to the DNS settions

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:

DNS TXT records in Bluehost

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:

Sendinblue DNS TXT records once they've been verified

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.

Select Sendinblue as your mailer in WP Mail SMTP

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.

Getting the API from Sendinblue

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:

The test email from WP Mail SMTP

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.

Disclosure: Our content is reader-supported. This means if you click on some of our links, then we may earn a commission. See how WPBeginner is funded, why it matters, and how you can support us.

The Ultimate WordPress Toolkit

Get FREE access to our toolkit – a collection of WordPress related products and resources that every professional should have!

Reader Interactions

150 CommentsLeave a Reply

  1. 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.

  2. 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.

    • 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

  3. 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?

    • 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

  4. 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?

    • 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

  5. 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?

    • That would be determined by the email provider being used and not something the plugin would change sadly.

      Admin

  6. Tnx a lot for your guide. After not less than 10 different attempts to make my emails functionable, this did it. THANKS!

  7. 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.

    • You would want to set up Sendinblue for the domain that is in the email address

      Admin

  8. 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)?

  9. It worked with the WP Mail SMTP Configuration perfectly. Literally just had to changed the E-Mail. Thanks.

  10. Two days trying to resolve wordpress not sending attachment bigger than 1mb; nothing works.
    Resolved in 1 minute thanks to you.

  11. 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?

    • You may want to check with the support for the plugin to ensure they don’t override the sending method for emails.

      Admin

  12. 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.

  13. 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?

    • You would open your primary domain’s DNS and add the records that Sendinblue has given you to that.

      Admin

  14. 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?

  15. 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?

    • If the user did not type in their email address correctly would be the most common reason.

      Admin

  16. I followed this guide and got “test email sent successfully” but I didn’t receive an email on my email account, how come?

    • 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

  17. 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

  18. 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.

    • We would recommend using SMTP to send your emails still as having a custom email address does not change how WordPress sends emails.

      Admin

    • To ensure that connections going there are for email and not possible site visitors

      Admin

  19. 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!!

  20. 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!

    • You’re welcome, it’s difficult to keep up with Google’s changes but glad our article could still be helpful :)

      Admin

  21. 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!

  22. 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.

    • 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

  23. 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

    • 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

  24. Thanks for brilliant tutorial mate, really did help solve an issue which wasted hours of my time.

  25. 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.

  26. 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.

  27. 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.

  28. 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?

  29. 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?

  30. 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.

Leave a Reply to Tim Cancel reply

Thanks for choosing to leave a comment. Please keep in mind that all comments are moderated according to our comment policy, and your email address will NOT be published. Please Do NOT use keywords in the name field. Let's have a personal and meaningful conversation.