Struggling with WordPress emails not sending?

Because of the default way that WordPress tries to send its emails, it's common to experience issues with WordPress emails not sending, either because the emails just plain don't send or because the emails do send but get caught up in spam filters instead of making it to the inbox.
This can affect notification emails, password resets, WooCommerce store emails, and pretty much any other type of email that your WordPress site tries to send. Whatever kind of email it is, it’s never a good thing.
Thankfully, there are some straightforward fixes that you can implement to ensure your WordPress site is able to send its emails and have those emails avoid recipients' spam folders.
In this post, we'll cover everything that you need to know to both understand and fix the problem:
- Common reasons for WordPress emails not sending
- How to configure WordPress to use a dedicated email sending service
- How to fix common WordPress contact form plugins not sending emails
- How to test your WordPress emails
Reasons for WordPress Emails Not Sending
If you're having issues with your site's emails, there are two common culprits:
- Your WordPress hosting server isn't properly configured to send emails.
- Your emails are sending, but they're ending up in users' spam folders instead of their inboxes.
The exact troubleshooting steps that you take will depend on what the specific problem is, but there's a good amount of overlap in the solutions.
For example, implementing a more reliable way for your WordPress site to send its emails will also usually help them look less spammy. As such, fixing basic sending issues can also fix spam issues at the same time.
Before we get to those troubleshooting steps, though, let's explain the two issues in more detail.
1. Your WordPress Server Isn't Properly Configured to Send Email
By default, WordPress tries to send your site's emails using your hosting server and its wp_mail() function, which is based on the PHP mail() function.
This is because this setup is the closest thing to a “universal” configuration for sending emails on all types of WordPress sites.
However, there are a couple problems here. First, some web hosts outright ban the PHP mail() function because it can cause issues and be abused for spam. If your web host is one of these hosts, your WordPress site's emails won't send in the default configuration.
Second, even if a host allows PHP mail(), your hosting server is optimized for hosting websites, not for sending emails. This can cause issues all by itself, either with your emails not sending at all or with your emails ending up in users' spam folders (more on that in a second).
The "fix" here is to configure your WordPress site to use a dedicated email sending service instead of trying to send emails using your website's hosting server.
These services offer special servers that are specifically optimized to send emails reliably and with added authentication to help them avoid spam folders.
They let you send your emails using a technology called SMTP (Simple Mail Transfer Protocol). Or, many email sending services now also offer API integrations to let you send your WordPress emails that way.
Below, you'll learn how to configure WordPress to use a dedicated email sending service, which is one of the best ways to fix problems with emails not sending.
2. Your WordPress Emails Are Ending Up in Users' Spam Folders
In some situations, your WordPress site might be successfully sending emails. However, those emails might be getting stuck in spam.
We already covered one big reason for this in the previous section, using the default wp_mail() / PHP mail() method.
Even if your host allows WordPress to send emails using PHP mail(), these emails lack proper authentication, which means that they're much more likely to get flagged by email clients' spam filters.
You probably don't need us to tell you that email spam is a big issue. To combat this, email clients use aggressive filters to detect spam. One of these filters is checking whether an email has been properly authenticated with technologies such as SPF and DKIM.
In a nutshell, SPF lets email senders control IP addresses that are able to send from a domain, while DKIM provides an encrypted digital signature that verifies the email was not forged or altered.
Put together, these technologies verify that the sender is who they say they are and the email has not been forged in any way. Without these technologies, you can see why email clients are more likely to mark such unauthenticated emails as spam.
Using a dedicated sending service as we discussed above lets you add these authentication technologies to your site, which will already do a lot to help your emails avoid the spam folder.
However, there also might be other minor issues, especially if you're using a contact form plugin. For example, if you use the wrong "From" or "To" email addresses in your form plugin's settings, that can cause spam problems.
How to Configure Your WordPress Site to Send Emails Reliably
To configure your WordPress site to send its emails via a dedicated service, you'll need two things:
- A WordPress SMTP plugin. Most sites will be fine with a free SMTP plugin.
- An email sending service. For most WordPress sites with low-volume sending needs, you can find free services. Many free services will support sending 100 to 500 emails per day for free.
Let's go through choosing the right tools and then configuring them on your site.
1. Choose and install an SMTP plugin.
To begin, you'll want to choose and install an SMTP plugin on your WordPress site. An SMTP plugin will alter WordPress's built-in wp_mail() approach to use a dedicated sending service instead.
The nice thing about these plugins is that they'll work with any tool that tries to send emails using wp_mail().
This not only covers core emails such as password resets, but most SMTP plugins will also work with contact form plugins, event plugins, WooCommerce … pretty much any plugin that sends emails using WordPress.
You can find a number of free options at the WordPress.org plugin directory - here are some of the top options:
You can see a more detailed look at some of these plugins in our full WordPress SMTP tutorial.
For this tutorial, we'll be using the free version of WP Mail SMTP because it's the most popular option, it comes from a reputable company, and it has a long track record of reliability. However, the basic process will be the same with the other plugins.
2. Choose your email sending service.
Next, you'll need to choose the email sending service that you want to use to deliver your site's emails.
Many email sending services offer limited free tiers that let you send a certain number of emails per day or per month, along with paid tiers for higher sending limits.
In general, most WordPress sites will be fine with the free tiers, especially if you're just sending a few form notifications and password resets.
However, for sites that regularly send transactional emails, you'll probably need a paid service. This includes stores, online courses, subscriptions, and membership sites.
Here are some popular SMTP services for sending WordPress emails:
- HubSpot Transactional API: If you're already using HubSpot for email marketing, you can purchase an add-on to access the transactional API and use that to send your WordPress site's emails.
- SendGrid: A dedicated email sending service that lets you send up to 100 emails per day for free forever. For higher sending limits, you can upgrade to paid plans.
- Amazon Simple Email Service (SES): There's no free plan for SES, but it's one of the cheapest paid email sending services as it costs just $0.10 per 1,000 emails that you send.
- Mailgun: Offers a one-month free trial and then costs $1 per 1,000 emails.
- Sendinblue: While Sendinblue is primarily an email marketing service, it also lets you use your sending limits for transactional emails. The free plan lets you send up to 300 emails per day.
- Gmail API: If you have a free Gmail account, you can actually use it to send your WordPress site's emails via the API. It lets you send 500 emails per day, which is one of the higher free limits that you'll find. However, the setup process is a little more complex than traditional sending services.
If you're not sure where to start, SendGrid is a good option because the free plan should work for most WordPress sites and you can configure it to send emails using its API.
3. Configure your SMTP plugin to use that email sending service.
Once you've registered for your chosen SMTP service, the final step is to configure your SMTP plugin to connect to that service.
Once you've done that, your WordPress site will start sending emails via that service instead of the wp_mail() function.
How you set up this configuration will depend on your chosen sending service and the plugin that you're using. There are two general approaches:
- SMTP credentials: You can enter SMTP credentials directly, which will work with any email sending service that uses SMTP. Think of it as the "generic" integration option.
- API integration: You can use a direct API integration, which is a custom integration that's unique to each provider.
For example, the free version of the WP Mail SMTP plugin supports generic SMTP connections, as well as direct API integrations for the following providers:
- SendLayer
- SMTP.com
- Sendinblue
- Google/Gmail API
- Mailgun
- Postmark
- SendGrid
- SparkPost
In general, we recommend using the direct API integration if available, as that typically offers even better reliability. However, it's fine to use the generic SMTP approach if that's your only option.
To start using SendGrid with WP Mail SMTP, you would need to:
- Authenticate your domain name with SendGrid.
- Access your SendGrid API key.
- Add the SendGrid API key to the WP Mail SMTP plugin's settings.
For full instructions for popular services, you can consult WP Mail SMTP's documentation. Here are some examples:
How to Make Sure Your Contact Form Emails Avoid the Spam Folder
If you configure your WordPress site to use a dedicated email sending service by following the instructions in the previous section, you'll have already done a lot to make sure your site's emails avoid the spam folder.
Your site's core emails should work fine. However, you might still run into issues with form notifications not making it to your subscribers' inboxes.
Typically, this is a result of a misconfiguration in the form plugin's settings. Most commonly, the problem is trying to send your form notifications from a different email address than your domain name, which can cause email clients to think you're "spoofing" emails.
If you don't want to deal with these issues, consider using the free HubSpot WordPress plugin for your forms. HubSpot includes its own built-in email delivery service, which will ensure that your emails send properly without requiring you to lift a finger.
If you'd rather keep using your existing form plugin, we’ll go through how to fix a form on WordPress that is not sending notification emails for several popular plugins:
- Contact Form 7
- WPForms
- Gravity Forms
- Ninja Forms
- Other WordPress form plugins
But first, if you prefer a video explainer, check out this great one from Kinsta:
Let's start with the most popular contact form plugin for WordPress, Contact Form 7.
Fix Contact Form 7 Not Sending Emails
If you're having trouble with Contact Form 7 not sending emails, make sure that the "From" address you added in Contact Form 7's settings matches the email address that you configured with your email sending service. You should also make sure that your "From" and "To" email addresses don't match, as this can trigger warnings in Gmail.
Here's how:
- Go to Contact > Contact Forms and select the form where you're having issues.
- Open the Mail tab in the form settings interface.
- Make sure that the "From" address uses your site's domain name (which should be the domain name that you authenticated with your email sending service).
- Make sure that the "To" address is not the same as the "From" address.
- Save your changes.
Fix WPForms Not Sending Emails
If you're having trouble with WPForms not sending emails, make sure that the "From" address you added in WPForms's settings matches the email address that you configured with your email sending service. You should also make sure that your "From" and "To" email addresses don't match, as this can trigger warnings in Gmail.
Here's how:
- Go to WPForms > All Forms and edit the form where you're having issues.
- Go to the Settings tab in the form builder interface.
- Open the Notifications area inside the Settings tab.
- Make sure that the "From" address uses your site's domain name (which should be the domain name that you authenticated with your email sending service).
- Make sure that the "To" address is not the same as the "From" address.
- Save your changes.
Fix Gravity Forms Not Sending Emails
If you're having trouble with Gravity Forms not sending emails, make sure that the "From" address you added in Gravity Forms's settings matches the email address that you configured with your email sending service. You should also make sure that your "From" and "To" email addresses don't match, as this can trigger warnings in Gmail.
Here's how:
- Go to Forms > Form and select the form where you're having issues.
- In the form editor, go to Settings > Notifications.
- Edit the email notification that isn't sending properly.
- Make sure that the "From" address uses your site's domain name (which should be the domain name that you authenticated with your email sending service).
- Make sure that the "To" address is not the same as the "From" address.
- Click the Update Notification button at the bottom.
Fix Ninja Forms Not Sending Emails
If you're having trouble with Ninja Forms not sending emails, make sure that the "From" address you added in Ninja Forms's settings matches the email address that you configured with your email sending service. You should also make sure that your "From" and "To" email addresses don't match, as this can trigger warnings in Gmail.
Here's how:
- Go to Ninja Forms > Dashboard and edit the form where you're having issues.
- Select the Emails & Actions tab in the form builder interface.
- Click the gear icon next to the email notification that's causing problems. This will open the email settings in a slide-out panel.
- Expand the Advanced toggle to see the "From" email address. If you don't see the "From" email address, you need to enable developer mode by going to Ninja Forms > Settings in your main WordPress dashboard and checking the box for Form Builder "Dev Mode".
- Make sure that the "From" address uses your site's domain name (which should be the domain name that you authenticated with your email sending service).
- Make sure that the "To" address is not the same as the "From" address.
- Click the Done button.
Fix Other WordPress Form Plugins Not Sending Notification Emails
If you read through the instructions for all of the different form plugins above, you might've noticed that the instructions are pretty much the same for every plugin.
There's a reason for that - once you set up a dedicated email sending service for your site, normally the only thing left in your way is a misconfiguration in the "To" and "From" email addresses for your form plugin notifications.
The basic ideas are as follows:
- Your "From" email address should use your site's domain name, which should be the same domain name that you authenticated with your email sending service.
- Your "To" email address should not be the same as the "From" email address, as this can trigger errors in Gmail and other email clients.
How to Test If WordPress Emails Are Sending
Once you've implemented the strategies from above, you're ready to run a test to assess your WordPress site's email deliverability.
If you used the WP Mail SMTP plugin from the tutorial above, it includes a built-in feature to let you send a test email to any address. Most other SMTP plugins also offer similar features.
To access this, go to WP Mail SMTP > Tools > Email Test.
To start, you can just send an email to your own address to see if it makes it to your inbox:
If you want to dig deeper into spam analysis, you can also send a test email to a tool such as Mail Tester, which will help you assess how "spammy" the emails that your WordPress site is sending look. This can be helpful to diagnose issues with misconfigured authentication technologies such as DKIM.
Here's how it works:
- Go to Mail Tester and copy the email address that it gives you.
- Open the WP Mail SMTP email test tool and send a test email to the email address from Mail Tester.
- Go back to Mail Tester and click the Then check your score button.
- View the results and adjust your WordPress email configuration if needed.
Fix the “WordPress emails not sending” problem today.
If you follow the steps above, you should be able to fix the WordPress emails not sending problem for good.
The nice thing about the method above is that it should fix all the emails that your site sends, whether they're password reset emails, emails from your contact form plugin, WooCommerce transactional emails, and more.
Implement these tactics today and enjoy more reliable WordPress emails.
Or, if your WordPress forms are essential to your business and you'd rather not worry about email deliverability issues, another option would be to use the free HubSpot WordPress plugin.
To help you create your forms, the HubSpot WordPress plugin includes adrag-and-drop form builder.
Where HubSpot goes further than other form plugins, though, is that all of the forms you create with HubSpot will automatically use HubSpot's built-in email sending service for top-notch deliverability from day one.
If you want to try it out, you can get started by installing the free HubSpot WordPress plugin from the WordPress.org directory.