Facing the WordPress not sending email issue? You’re not alone! Here’s how to fix the WordPress not sending emails problem.
It happens a lot. Especially when you launch a new WordPress site. Also after moving from one web host to another.
Suddenly you notice that you’re not getting emails from your site. This includes emails from WordPress forms, site notifications, etc.
Email notifications are an important part of your WordPress site. Visitors provide their feedback via contact forms. This feedback usually comes to you via emails.
Some security plugins send email alerts. Memberships and eCommerce involve lots of other emails as well.
When you run a listing or directory site, you and your users both are supposed to get emails from the site. If your site cannot send emails, then your directory would fall.
Missing these emails is really horrible. But don’t worry! In this post, we’ll show you the easiest way to solve the WordPress not sending email issue. It will also fix the WordPress emails in spam problem.
We'll provide you a complete solution path to your email delivery issues.
Why doesn’t WordPress send emails? Why they go to spam?
Let’s face it. There are basically 2 types of problems with WordPress emails.
- WordPress emails are not delivered
- WordPress emails go to the spam box
The first one happens when your web host’s email server is not properly configured. Believe it or not, configuring an email server is complex.
If you’re not an expert at creating email servers, you should try an alternative solution (i.e. SMTP). We’ll show you how. Just keep reading!
Even if your site hosting is set up to send emails using the basic PHP mail function, problems could still arise. The emails can land in the spam folder. Those who use shared hosting, are at the greatest risk of facing this issue.
Ultimately, you shouldn’t depend on your web host’s default PHP email system. Although this can send emails without any additional work from your end. But the emails could go to the spam folder (and remain unnoticed). It doesn’t look professional.
WordPress not sending emails and WordPress emails in spam solution
So, here we go! We’ll fix both of these above problems with a single solution. We’ll bypass the website hosting server’s default email system.
Instead, we’ll use different technology. It’s called SMTP (Simple Mail Transfer Protocol).
With the default WordPress email function, your website’s emails go through the host’s PHP mail system. If your host intentionally turns the PHP mail function off, then your site’s emails won’t be delivered at all.
Email clients like Gmail, Outlook consider several things before putting an email in the inbox. Email service experts are good at satisfying these criteria. If your hosting or IP address doesn’t have that reputation, your emails may go to spam.
So let’s better bypass the default PHP email function.
When you use an SMTP option, your WordPress emails are delivered from specialized email servers. They are good at this.
There are many SMTP email service providers. Some of them are Gmail, SendGrid, Sendinblue, Zoho, etc. You got many options to choose an SMTP server!
Tools to fix WordPress not sending emails
We need 2 things to fix the WordPress not sending emails issue. Yes, you’re reading that right. Only a couple of things. And the nightmare will come to an end!
Here’s the list.
- WP Mail SMTP plugin
- A SendGrid account
How to fix WordPress not sending emails
We’ll do this in 4 easy steps. Let’s see it step by step.
Step 1: Install and activate the WP Mail SMTP plugin
Since there is no built-in SMTP mailer in WordPress, so we need to use it via a plugin. Have you heard the popular saying “there’s a plugin for everything”? It’s true. It’s a blessing that there’s a plugin for almost everything in WordPress.
You may notice several SMTP plugins for WordPress. We’ll use WP Mail SMTP, the most popular SMTP WordPress plugin.
So, log in to your WordPress dashboard. Go to Plugins → Add New. Search for WP Mail SMTP (please see the screenshot below).
Install and activate the WP Mail SMTP plugin on your WordPress site.
Now we need the second thing. The SMTP service provider. We’ll use SendGrid for this tutorial.
SendGrid offers a reasonable free plan that can send 100 emails per day. It’s enough for a small/medium site’s notification emails. If your site is bigger than that, you can get a paid plan.
Step 2: Get a SendGrid account and their SMTP API key
It’s pretty straightforward. Visit the SendGrid website and sign up for a free account. Log in to your new SendGrid account. You’ll find several onboarding options.
Click the Start button for the “Integrate using our Web API or SMTP relay” option.
On the next screen, you’ll get 2 options. Choose the “SMTP Relay” option.
Moving on, give your API key a name. Then press the “Create Key” button. You’ll see your API key on the screen. We’ll need to enter this API key into the WP Mail SMTP plugin settings soon.
Step 3: Configure WP Mail SMTP with Sendgrid API key
Go to your WordPress dashboard. You’ll find the WP Mail SMTP menu in the left navigation bar. Open that. It will bring the plugin’s Settings page.
Set the sender email address in the From Email field. Your default transactional/notification emails will be sent from this address.
If you check the “Force From Email” field, this email account will be used as the “sender email address” for all emails being sent from your site.
If any plugin on your site has some different sender email address, those will be ignored. So you have the option to force a single email address to be used as the sender email address.
Also, set the sender's name. You can use your site name here. Also, the force option is available for the sender's name. You’re free to decide.
After deciding the “From Email” and “From Name”, we get the option to choose a mailer. We’ll select SendGrid for this tutorial, as you already know.
Clicking on the SendGrid option will bring the API key input box for it.
Enter the API key we created in step 2. Click Save Settings.
Step 4: Verify the SendGrid integration
Now that we’ve connected SendGrid to our website via WP Mail SMTP. It’s time to test whether the emails are working. We need to work on both WP Mail SMTP and the SendGrid API dashboard.
On the WP Mail SMTP settings page, you’ll get an “Email Test” menu. Click that. The following screen will appear. Using this, we can send a test email to our email inbox.
Enter an email address where you can receive the test email.
Click the Send Email button. Check your inbox. If everything was set up correctly, you should receive the email.
Once you receive the test email, go to your SendGrid account’s API page. Check the “I’ve updated my settings” box. Click Next: Verify Integration.
This will bring you to another page. Click the “Verify Integration” button on that page. Since you’ve received the earlier test email, now SendGrid will understand that the test email was actually sent using their service. So it will confirm the verification.
It will show a success message.
Upon completing these steps, your WordPress transactional emails will work. But for the long run and the best email deliverability, you should authenticate SendGrid in your domain’s DNS record. SendGrid has detailed documentation that you can follow in this regard.
Emails are important. For any website, proper email deliverability is a vital functionality. Now that you know how to fix the WordPress not sending emails or WordPress emails going to spam issues. We believe you’ll never miss an email from now on!
We hope you’ve found this article helpful. Please stay tuned to our blog for more helpful articles.