Ritesh Kumar Giri
November 3, 2026
8 min read

WooCommerce Emails Not Sending? How to Find and Fix It

WooCommerce emails not sending? Check order status, email settings and the transactional email log, then fix SMTP, your From address, SPF, DKIM and DMARC.

WooCommerce Emails Not Sending? How to Find and Fix It

Introduction

When WooCommerce emails are not sending, the cause is usually one of three things: the order never reached a status that triggers an email, the email type is switched off, or WooCommerce did send it but your server's mail setup failed or the message was filtered as spam. WooCommerce now logs every transactional email attempt, so you can tell which of the three it is in a few minutes instead of guessing. Check the order status first, then the email settings, then the transactional-emails log, and only then move on to SMTP and domain authentication.

Customers who get no confirmation tend to message the store or order twice, and owners miss new orders. Below is the order I work through on client stores, with the WooCommerce and Gmail rules behind each step.

Is the problem "not sent" or "not received"?

"Not sent" means WooCommerce never handed the email to your site's mail system, or the handover failed. "Not received" means it left your site but was rejected or filtered as spam on the way.

WooCommerce's own email troubleshooting guide points out that the plugin sends mail through wp_mail(), the core WordPress mail function. So in many cases WooCommerce created the email correctly, and the real fault sits with the hosting mail function or a later step. The guide also says that, often, email issues are deliverability issues: the server sends the message, but it is not received.

Step 1: Check the order status before anything else

WooCommerce only sends the new order and processing emails when an order moves into the right status. According to the WooCommerce guide, if an order is still in Pending payment, no email is triggered. That is the most common "emails not sending" report I see, and it is not an email problem at all.

  • The payment was not completed. The customer abandoned the external payment page or the card was declined. No email is expected here.
  • The payment was completed but the order is still pending. The payment gateway is not updating your site. WooCommerce says to treat this as a gateway issue and work through the gateway's own documentation. Our guide to WooCommerce orders stuck on pending payment covers webhooks, callbacks and the order notes to read.
  • An error stopped the status change. A conflict with a theme, custom code or another plugin can throw an error before the status changes. WooCommerce suggests checking its logs for fatal errors and testing with other plugins disabled and a default theme active.

If your paid orders show Processing and the emails still do not arrive, move on to Step 2.

Step 2: Confirm the email is switched on

Every WooCommerce email has its own on/off switch. Go to WooCommerce > Settings > Emails, open the email in question (for example "Processing order" for customers or "New order" for the shop owner), and make sure Enable this email notification is ticked. For the admin "New order" email, also check that the recipient field holds an address someone actually reads.

These switches get changed more often than owners think, for example by an email customiser plugin or someone testing on the live store. If the email is enabled and still not going out, WooCommerce says a conflict is the likely cause.

Step 3: Read the transactional email log

This is the step that saves the most time. WooCommerce automatically logs each transactional email attempt. To read it:

  1. Place a test order or trigger the email you want to check.
  2. Go to WooCommerce > Status > Logs.
  3. Open or filter the log source named transactional-emails.
  4. Find the entry for that email type and order.

Each entry records one of four outcomes. Here is what each one means and where to go next, based on the WooCommerce guide:

WooCommerce transactional email log outcomes
Log outcomeLog levelWhat it meansNext step
SentINFOWooCommerce handed the email to the mail system successfullyTreat it as a delivery problem (Steps 5 and 6)
FailedWARNINGThe site's mail-sending process returned an error, usually with a reasonFix the hosting or mail setup (Step 4)
DisabledNOTICEThe email type is turned off in the email settingsEnable it (Step 2)
SkippedNOTICEA required condition was missing, such as no recipientAdd the missing detail, such as the recipient

For order emails, sent and failed attempts are also added as private order notes, so you can see them on the order screen itself. Disabled and skipped emails appear only in the log. If you expected an entry and there is none at all, WooCommerce says to look for fatal errors and conflicts.

If entries are missing, check WooCommerce > Status > Logs > Settings is not hiding INFO or NOTICE levels. Also, the log covers WooCommerce transactional emails only. WordPress password reset emails and other admin emails might not appear there, so for those you need your SMTP provider's logs or a mail logging plugin.

Step 4: Fix a "Failed" result with proper SMTP

A failed entry usually includes the reason reported by WordPress or the mail service, which tells you whether the hosting mail setup is at fault.

The fix WooCommerce recommends is to use a dedicated SMTP provider to send the email for you, which it describes as more reliable than your own server's mail function. In practice that means three jobs:

  • Pick a transactional email service and create an account for your domain. Check its official pricing page yourself, as plans change.
  • Connect WordPress to it with one SMTP or mailer plugin (never two at once), using the provider's API key or SMTP details.
  • Verify your domain with the provider, which normally means adding the DNS records it gives you. That step matters for Step 6.

Make this change on a copy of the site first if you can. A WordPress staging site lets you test the mailer without risking live orders, but remember to stop the staging copy from emailing real customers.

Free quote · reply within 24 hours

Stuck with a slow or broken WordPress site?

Tell us what's wrong. You get a fixed written quote to fix it, or rebuild it, within 24 hours.

WhatsApp us

Step 5: Use a From address on your own domain

If the log says "Sent" and customers still see nothing, look at the sender first. In WooCommerce > Settings > Emails, the From address should use your website's domain, such as [email protected]. The WooCommerce guide warns that a public address like @gmail.com or @yahoo.com is likely to land in spam or be blocked, because the declared sender (Gmail's or Yahoo's servers) does not match the actual sender (your server).

Gmail's email sender guidelines go further. Google says not to impersonate Gmail From: headers and notes that Gmail will begin using a DMARC quarantine enforcement policy, which could affect delivery for anyone who does. Google also recommends one consistent From: address per message type, so keep one fixed address for order emails and a separate one for newsletters, and keep promotions out of receipts.

Step 6: Set up SPF, DKIM and DMARC for the sending domain

This is where most "sent but not received" cases end. Gmail's sender guidelines say that starting 1 February 2024, all senders who send to personal Gmail accounts must set up SPF or DKIM, have valid forward and reverse DNS for their sending domains or IPs, use a TLS connection, keep the spam rate reported in Postmaster Tools below 0.3%, and format messages to the RFC 5322 standard. Senders of more than 5,000 messages a day to Gmail accounts must set up SPF, DKIM and DMARC, with the From: domain aligned with the SPF or DKIM domain.

Most shops are nowhere near that volume, but Google recommends all three anyway:

  • SPF is a DNS record listing who may send mail for your domain. Google's guidance is that it should include all your senders. If you add an SMTP provider but forget to add it to SPF, its messages are more likely to be marked as spam. Keep one SPF record per domain and add each sender to it.
  • DKIM signs each message so the receiving server can confirm your domain sent it. Google requires a key of 1024 bits or longer for personal Gmail accounts and recommends 2048 bits where your provider supports it.
  • DMARC tells receiving servers what to do with mail that fails SPF or DKIM. Google says the enforcement policy can be set to none, and recommends DMARC reports so you can see who is sending as your domain.

Google also notes that messages failing these checks might be marked as spam or rejected with a 5.7.26 error, so if a customer forwards you a bounce containing that code, authentication is the place to look. Your SMTP provider's domain verification screen shows which records are missing.

Step 7: Test it like a customer

Once the log, From address and DNS records are in order, run one clean test before you call it fixed:

  1. Place a real low-risk order, or a test-mode order if your gateway supports it, using a personal Gmail address and one other mailbox provider.
  2. Confirm the order reaches Processing and the order notes show the email as sent.
  3. Open the received email, view the original message or headers, and check that SPF, DKIM and DMARC all show a pass.
  4. Check the admin "New order" email arrived at the shop's own address.

Repeat this after any change to hosting, DNS, payment gateway or email plugins. A store that was fine last month can break quietly after a domain or SSL change, which is why it belongs in a regular website maintenance routine rather than being fixed only when a customer complains.

Frequently asked questions

Why are WooCommerce emails going to spam?

Usually because the sender cannot be verified: a From address on a free mailbox such as Gmail, missing SPF or DKIM records, or a shared server with a poor reputation. Use your own domain, a dedicated SMTP provider, and SPF, DKIM and DMARC.

Why does the customer get no email but I get the new order email?

The customer "Processing order" email is enabled separately from the admin "New order" email, so check both. If both are on and the log shows "Sent", the problem is delivery or spam filtering, usually fixed by authentication.

Where can I see whether WooCommerce sent an email?

Go to WooCommerce > Status > Logs and open the transactional-emails source. For order emails, sent and failed attempts also appear as private notes on the order. If entries are missing, check the log settings are not hiding INFO or NOTICE levels.

Do I need an SMTP plugin for WooCommerce?

It is not required, but WooCommerce recommends a dedicated SMTP provider because it is more reliable than your own server's mail function. On shared hosting in particular, it is the most dependable fix for failed or missing emails.

Conclusion

When WooCommerce emails are not sending, work from the order outwards: confirm the order reached Processing, confirm the email is enabled, read the transactional-emails log, then fix SMTP, the From address and SPF, DKIM and DMARC in that order. Most stores are back to reliable order emails once mail goes through a dedicated provider on an authenticated domain. We have delivered 100+ projects and handle this setup as part of our build and maintenance work. If you would rather we check your store, message us on WhatsApp at +91 73482 28167 and you get a fixed written quote within one working day.

Free quote · reply within 24 hours

Want a fixed price for your project?

Tell us what's wrong. You get a fixed written quote to fix it, or rebuild it, within 24 hours.

WhatsApp us

Keep reading on WordPress & WooCommerce