How to Fix WordPress Emails Not Sending

Get HubSpot's WordPress Plugin
Colin Newcomer
Colin Newcomer

Published:

If you've ever dealt with WordPress not sending email newsletters you're attempting to disseminate, you understand how frustrating it can be. That pesky WordPress was unable to send the email notification can seriously rain on your parade — but luckily, it can be fixed. The first step? Figuring out what's causing the issue. 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.

wordpress not sending email: image shows a person trying to figure out the problem and two hands on a computer keyboard above.

Send emails from your WordPress dashboard. Learn more.

In this post, we'll walk you through how to fix WordPress not sending email issue. You'll also learn why this may occur and how to act accordingly. Let's dive in. 

Why is WordPress not sending email newsletters? 

There are two primary reasons you might struggle with your WordPress site's ability to send emails. The most common culprits include your WordPress server being improperly configured to send emails or your emails ending up in spam folders instead of their inboxes. In the case of the latter, your emails actually are being sent, but it doesn't seem like they are. 

Regardless of why your emails are experiencing difficulty, there's actually a lot 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 simultaneously.

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. That being said, there are a few issues here. First, some web hosts outright ban the use of the PHP mail() function. This is because it can sometimes cause issues and be abused for spam. If your web host bans using this function, 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 — we'll elaborate on that momentarily. 

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.

While this might seem like an extra step you don't want to take, we promise it's worthwhile if you're struggling with WordPress not sending email newsletters. 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). Many email-sending services now also offer API integrations to let you send your WordPress emails that way. Regardless of how you decide you want to tackle this problem, it's crucial you do — or it's going to keep happening. 

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.

  1. Your WordPress Emails Are Ending Up in Users' Spam Folders

Sometimes, it's not your WordPress website to blame. Instead, the site is successfully sending emails but they're getting stuck in spam.

In the previous section, we already covered one major reason this occurs: 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. And that means your emails are landing themselves in our clients' spam folders — where they'll never see it. 

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 can 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 gives you a leg up as you have the ability to add these authentication technologies to your site. This does 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, using the wrong "From" or "To" email addresses in your form plugin's settings 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:

  1. A WordPress SMTP plugin. Most sites will be fine with a free SMTP plugin.

  2. 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 choose the right tools and then configure them on your site.

1. Choose and install an SMTP plugin.

First, you'll want to select 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 by accessing the WordPress.org plugin directory. Here are some of our favorite 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, comes from a reputable company, and has a long track record of reliability. However, you'd follow the same basic process regardless of which plugin you select. 

wordpress not sending email: wp mail smtp download page banner

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. This can help you stay within your budget so you're not paying for any functionality that you don't need.

Most WordPress sites will be fine with the free tiers, especially if you're just sending a few form notifications and password resets.

However, if you regularly send transactional emails, it's probably wise to opt for 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. Now that rate will work for nearly any budget. 

  • Mailgun: This SMTP service 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 daily, which is one of the higher free limits you'll find. However, the setup process is slightly more complex than traditional sending services.

If you're unsure 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.

wordpress not sending emails: sendgrid website homepage

3. Configure your SMTP plugin to use that email sending service.

Once you've registered for your chosen SMTP service, the final step is configuring your SMTP plugin to connect to that service.

Once you've done that, your WordPress site will send emails via that service instead of the wp_mail() function, which is much more efficient. 

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 also elect to use a direct API integration, a custom integration 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 also 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:

wordpress emails not sending: using sendgrid int he wordpress dashboard

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 encounter issues with form notifications not making it to your subscribers' inboxes.

Typically, this results from a misconfiguration in the form plugin's settings. Most commonly, the problem is sending 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 correctly — and you don't have 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

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 ensure that your "From" and "To" email addresses don't match, as this can trigger warnings in Gmail that will lead to sending difficulties. 

Here's how:

  1. Go to Contact > Contact Forms and select the form you're having issues with.

  2. Open the Mail tab in the form settings interface.

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

  4. Make sure that the "To" address is not the same as the "From" address.

  5. Save your changes.

wordpress not sending emails: editing a contact form in wordpress dashboard

Fix WPForms Not Sending Emails

If you're having trouble with WPForms not sending emails, ensure that the "From" address you added in WPForms's settings matches the email address you configured with your email-sending service. You should also ensure that your "From" and "To" email addresses don't match, which can raise red flags for Gmail. 

Here's how:

1. Go to WPForms > All Forms and edit the form where you're having issues.

2. Go to the Settings tab in the form builder interface.

3. Open the Notifications area inside the Settings tab.

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

5. Make sure that the "To" address is not the same as the "From" address.

6. Save your changes.

wordpress not sending emails wpforms

Fix Gravity Forms Not Sending Emails

If you're having trouble with Gravity Forms not sending emails, ensure that the "From" address you added in Gravity Forms's settings matches the email address you configured with your email-sending service. You should also ensure that your "From" and "To" email addresses don't match, as this can trigger warnings in Gmail.

Here's how:

  1. Go to Forms > Form and select the form where you're having issues.

  2. In the form editor, go to Settings > Notifications.

  3. Edit the email notification that isn't sending properly.

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

  5. Make sure that the "To" address is not the same as the "From" address.

  6. Click the Update Notification button at the bottom.

wordpress not sending emails: gravity forms

Fix Ninja Forms Not Sending Emails

How about if you're having trouble with Ninja Forms not sending emails? Here's what you need to do. 

 

First, 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 — you guessed it, that can trigger a warning for Gmail that can lead to sending difficulties. 

Here's how:

  1. Go to Ninja Forms > Dashboard and edit the form where you're having issues.

  2. Select the Emails & Actions tab in the form builder interface.

  3. Click the gear icon next to the email notification that's causing problems. This will open the email settings in a slide-out panel.

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

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

  6. Make sure that the "To" address is not the same as the "From" address.

  7. Click the Done button.

wordpress not sending email: ninja form

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:

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

  2. Your "To" email address should not be the same as the "From" one, as this can trigger errors in Gmail and other email clients. If you follow these steps, you should be in the clear. 

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. We suggest completing this test to make sure everything is properly set up.

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.

Go to WP Mail SMTP > Tools > Email Test to access this.

To start, you can just send an email to your own address to see if it makes it to your inbox:

wordpress not sending email: wp mail

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:

  1. Go to Mail Tester and copy the email address that it gives you.

  2. Open the WP Mail SMTP email test tool and send a test email to the email address from Mail Tester.

  3. Return to Mail Tester and click the Then check your score button.

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

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 a drag-and-drop form builder.

HubSpot goes further than other form plugins, though, because all the forms you create with HubSpot will automatically use HubSpot's built-in email-sending service for top-notch deliverability from day one. Therefore, you'll never have to worry about troubleshooting any WordPress not sending email issues. 

If you want to try it out, you can install the free HubSpot WordPress plugin from the WordPress.org directory.

Use HubSpot tools on your WordPress website and connect the two platforms  without dealing with code. Click here to learn more.

Related Articles

Pop up for GET HUBSPOT'S WORDPRESS PLUGIN HUBSPOT'S WORDPRESS PLUGIN

Capture, organize, and engage web visitors with free forms, live chat, CRM, analytics, and more.

DOWNLOAD THE FREE PLUGIN
Pop up for GET HUBSPOT'S WORDPRESS PLUGIN HUBSPOT'S WORDPRESS PLUGIN

CMS Hub is flexible for marketers, powerful for developers, and gives customers a personalized, secure experience

START FREE OR GET A DEMO