How to Fix Issues with WooCommerce Email Not Sending

Illustration by Colombe Nicolas illustration of a mechanic under a car

Are you having problems with WooCommerce email not sending? Unfortunately, it’s a common yet frustrating issue for store owners—but also one that can be easily fixed.

When your emails stop working, not only does it affect your customers (“Is my order on its way? I didn’t get a shipping confirmation!”) but it can also impact your ability to sell more stuff and your store’s reputation (“I won’t buy from them again because they were confusing to shop with last time…”).

WooCommerce email not sending can often be traced back to the fact most web hosts don’t provide email hosting. But there are some other common reasons why your emails have stopped working.

In this post, we’ll take a look at the most common reasons why WooCommerce email notifications stop working, how to test your WordPress site to determine what’s going on, and how you can fix your emails and get them sending again.

Note: Did you know MailPoet supports WooCommerce? Take a look at our features for WooCommerce.

What kinds of emails does WooCommerce send?

WooCommerce automates and sends a bunch of different transactional emails that ensure customers get all the key information they need related to their purchases.

These emails are usually triggered by a shopper’s interaction with your store, such as when they make a purchase, when their order is shipped, or when they ask for a refund.

Out of the box, WooCommerce has 10 transactional emails, which you can edit in the WooCommerce email settings:

  • New order email– sent customers when a new order is received.
  • Cancelled order – sent to customers when an order has been cancelled.
  • Failed order – sent to customers when an order has failed.
  • Order on-hold – sent to customers containing order details after an order is placed on-hold. 
  • Processing order – sent to the customer after payment and contains the order details.
  • Completed order – sent to the customer when the order is marked complete, and usually indicates that the order has been shipped.
  • Refunded order – sent to customers when their orders are refunded.
  • Customer note – sent to the customer when a customer note is added from the edit order admin.
  • Reset password – sent when customers reset their password.
  • New account – sent when a customer creates a new account.

If you’d like to customize the way these emails look, you can now do so within MailPoet! Our WooCommerce email template customizer will allow you to edit transactional email templates so that they match your brand identity.

How does WooCommerce send emails?

By default, WooCommerce sends emails using the wp_mail() function, a core WordPress function. To give you an idea of how it all works, here’s how the email lifecycle works:

  1. WooCommerce uses wp_mail() to attempt to send the email.
  2. Your hosting provider’s server receives the request and tries to use PHP mail to process the email.
  3. Your host then uses Postfix or SendMail—both email routers that are used to route outgoing and incoming emails to their correct destination—to route and deliver the email.
  4. The email is then accepted or rejected by the receiving host, i.e. your customer’s host.
  5. Finally, if the email has been accepted, it’s filtered. It’s during this last step where the email could be filtered to a customer’s inbox, their spam folder, or a different location, like Gmail’s promotions tab.

What does this all mean? Well, according to WooCommerce Docs, if you’re having problems with WooCommerce email not sending, the issue is usually not with WooCommerce itself but with the core email function of your hosting provider. Which makes sense since most hosts don’t provide email hosting, or don’t have servers properly configured for sending emails.

So what can you do? Let’s take a look.

3 common reasons for WooCommerce email not sending—how to fix them

Before we get stuck into the nitty-gritty of what could be causing your WooCommerce email ending issues, there are two things in WooCommerce worth checking first.

1. Are there new orders pending?

If you have new orders with a “pending” status, it means your store hasn’t sent emails for those particular orders because they haven’t been confirmed yet. Pending orders occur when a customer abandons the payment page or their credit card is declined.

Alternatively, if you have pending orders but receive payment for them via a payment gateway like PayPal or Stripe, it means your store’s orders aren’t being updated. In that case, it means there could be a problem with the payment gateway, not your email.

2. Have you accidentally disabled transactional emails?

It’s possible that you’ve inadvertently disabled your emails from sending. To check, in the WordPress dashboard go to WooCommerce > Settings > Emails and for each of your transactional emails, click “Manage” and check that the “Enable this email notification” box is ticked before you save changes.

Still having issues with WooCommerce email not sending? Let’s go through the most common problems and how to test and fix them.

Problem #1: Deliverability

If your emails aren’t sending, the problem could be deliverability.

As I mentioned above, sending emails via the default WordPress sending method can be unreliable at best. The first step in confirming whether email deliverability is the problem is to test whether your emails are actually sending and being received.

How to test email deliverability

The simplest way to test WooCommerce email deliverability is using MailPoet’s WP Mail Logging plugin. This free plugin logs emails sent via WordPress and helps with debugging what’s going wrong. Once installed and activated, the plugin immediately starts logging all outgoing emails, which you can view and search.

To test whether your WooCommerce store’s transactional emails are working:

  1. Install and activate WP Mail Logging.
  2. Generate a test order in WooCommerce.
  3. Go to WP Mail Logging and check if your test order generated emails and if there are any sending errors.

If WP Mail Logging displays email errors and you’ve confirmed that your store isn’t delivering emails, it’s time to think about setting up SMTP (Simple Mail Transfer Protocol) provider.

How to fix email deliverability

SMTP is an industry-standard for sending email. Using SMTP can help improve email deliverability by using proper authentication methods that satisfy email service providers.

With SMTP, you can bypass your web host since the wp_mail() function will reroute email from PHP to your SMTP provider. From there, the SMTP provider receives the request and adds your email to the queue to be sent.

I highly recommend setting up an SMTP plugin and service for your WooCommerce site to improve the deliverability of your emails if you’re having problems with WooCommerce email not sending.

But even better—MailPoet now provides an option for sending all your site’s emails, including WooCommerce emails, using its email servers.

No need to set up any extra WooCommerce plugins or extensions because MailPoet takes care of it all for you.

Option in MailPoet for sending all site's emails with MailPoet sending method.

If you would rather set up your own SMTP plugin, check out Top 3 SMTP Plugins for WordPress Compared (and How to Fix Emails Not Sending).

Problem #2: Spammyness

If your WooCommerce notification emails are sending but not showing up in your customers’ inboxes, there’s a strong chance you’ve been flagged as a spammer. Not only is this embarrassing for your brand, but it means customers who don’t check their spam folder will miss your store’s transactional emails.

Fortunately, there’s much you can do to improve your chances of landing in inboxes and fixing WooCommerce email not sending. But first, you need to confirm if your spam score is actually the problem.

How to test your spammyness

The simplest way to test the spammyness of your emails is with mail-tester. It’s a free and efficient tool MailPoet created to quickly test the quality of its own newsletters.

When you send a test email to mail-tester, it scores your email out of 10, taking into account its spammyness as well as other factors such as authentication, formatting, broken links, and whether you’ve been blacklisted (the most important factor).

The mail-tester interface.

mail-tester uses SpamAssassin, an open-source anti-spam platform, to analyze the spammyness of your email. It checks for things like DKIM, SPF, and looks at your email’s headers.

To send emails from your WordPress site to mail-tester, simply do so with the free plugin Check Email.

For more on email authentication, check out Get in Subscribers’ Inboxes with DKIM and SPF Email Authentication.

Other spam testing tools I’d recommend include:

  • Email on Acid. This paid tool tests your email against 23 different spam filters and gives you an overall deliverability score out of 100%. It provides easy-to-read graphs with instant stats on deliverability.
  • Litmus. Litmus scans your emails against 25+ different tests, identifies common issues that might be keeping you from the inbox, and provides actionable advice for how to fix them. It also validates your email is being properly authenticated using DKIM and SPF, and ensures your DMARC record is set up correctly.

How to fix spammyness

If you’ve determined that you’re being labeled a spammer, there are several things you can do to improve your chances of reaching inboxes.

First up, it’s important to understand what spam is. Read up on it here: How Spam and Phishing Filters Work.

Next, work your way through MailPoet’s in-depth blog post on the subject: WordPress Emails Going to Spam? Here Are 13 Ways to Improve Newsletter Delivery.

Lastly, find out How the MailPoet Sending Service Helps You Avoid the Spam Box.

Problem #3: Reputation

Have you neglected proper email list hygiene? Are you sending to bounced emails? Or… did you buy an email list…? 😱

If you’ve engaged in any of these or other email no-noes, chances are your sending reputation has been tarnished or—worse—you’ve been placed on an industry blacklist.

Some inbox providers like Gmail also take these factors into account which you will never be able to measure, unfortunately:

  • Domain reputation, e.g. yourdomain.com
  • User engagement, like opens and clicks

Fortunately, not all is lost. The first step in repairing your reputation is finding out your IP reputation—also known as your IP score, sender score, or email sender reputation.

IP reputation refers to the reputation of your email sending IP address, which signals to email service providers whether or not you’re a spammer (it all comes back to spam!). It’s based on factors such as the quality of email content, quality of contacts, and engagement levels of previous emails sent from your IP address.

Email providers like Gmail use your IP reputation to determine whether or not your WooCommerce emails should be delivered to inboxes. 

How to test your email reputation

There are a variety of reputation testing tools you can use to find out your IP reputation and fix WooCommerce email not sending.

Email on Acid can test your IP and domain names against the most common blacklist services and let you know if you’ve been blacklisted.

Sender Score can tell you your IP reputation—just enter your IP address or domain and it will give you a score out of 100. The higher your score, the better your reputation, meaning your store’s notification emails are more likely to land in inboxes.

How to fix your email reputation

The first step is avoiding common mistakes that are damaging the reputation of your sending IP address. 

The simplest place to start is removing bounced emails from your general email list so as not to harm your other email lists, such as your WooCommerce customer list.

With MailPoet, you can use the “Stop sending to inactive subscribers” feature to automatically scrub inactive emails from your lists after 3, 6, or 12 months of inactivity. For more on how this works, check out Stop Sending Emails To Your Inactive Subscribers Now. Here’s Why.

If you’re sending to an email list you bought, stop! You should never, ever buy lists, as we covered in Should You Buy Email Lists? 

If your IP address has been blacklisted and you want to investigate, you’ll need to either:

  • Change the sending method. For example, switch to sending with MailPoet’s Sending Service or SendGrid. This will change the IP address of your emails (recommended)
  • Visit the blacklist’s website and do a lookup of your IP address. Most blacklist database will provide general listing reasons (arduous!)

If you’re able to find out why you were blacklisted, you can try to get it reversed following the site’s blacklist removal process. For example, security company Barracuda Networks, which runs the popular Barracuda blacklist, has a simple removal request form that you can fill out.

Wrapping up

Hopefully, this article has helped you understand why you’re having problems with WooCommerce email not sending and how you can easily fix things. If you have any questions on the methods outlined in this post, feel free to leave a comment below.

Our main recommendation if your emails do get sent but never arrive: switch sending method now thanks to free plugins.

While I’ve focused on deliverability, spammyness, and reputation in this post, it’s also worth taking a look at your WooCommerce transactional emails from a marketing perspective if you want to further improve engagement. This includes:

  • Subject lines,
  • Quality of content, and
  • Open rates and clickthroughs.

You can learn more about testing these metrics and others in 20 Best Tools for Testing Emails.

Have you experienced issues with WooCommerce email not sending? How did you fix it? Share your experience in the comments below!