ZenWeb - Blog - WooCommerce Emails Not Sending? How to Fix Order Alerts

WooCommerce Emails Not Sending? How to Fix Order Alerts

November 5, 2026

Share this post:

WooCommerce Emails Not Sending? How to Fix Order Alerts
TL;DR: When WooCommerce emails are not sending, the cause is usually your hosting’s mail function, not WooCommerce itself. Other common causes are a disabled notification, a Gmail “From” address, missing SPF or DKIM records, or orders stuck on Pending payment. Check WooCommerce > Status > Logs, send a test email, then route mail through an SMTP service. Most stores are fixed the same day.

A customer pays for an order, then WhatsApps you an hour later: “Did my order go through? I didn’t get any email.” You check your inbox and find no New Order alert either. For a Malaysian online store, missing order emails mean worried buyers, double payments and orders packed late.

The good news: when WooCommerce emails are not sending, the orders themselves are usually safe in WP Admin. What breaks is the path between your store, your server and the inbox. That path can be checked one link at a time.

This guide ranks the causes by how often we see them on client stores. It gives fixes from WooCommerce’s own help pages (checked in October 2026), sets honest timelines and shows how to stop it happening again. If your problem is a website enquiry form rather than order alerts, read our guide to a contact form not sending emails instead.

The video below walks through the same troubleshooting path you will follow in Sections 2 to 4.

WooCommerce Emails Not Sending? Step-by-Step Tutorial

Source video: Watch on YouTube (WooCommerce solutions)

1. Why Are WooCommerce Emails Not Sending?

Quick Answer: WooCommerce emails not sending usually means your server’s basic PHP mail is failing or being filtered as spam. WooCommerce hands every email to WordPress’s wp_mail() function, which relies on your host. After hosting mail, the next causes are missing SPF or DKIM records, a disabled notification, a free webmail “From” address and orders that never leave Pending payment.

WooCommerce’s own email troubleshooting guide makes the same point: in many cases the problem is not WooCommerce creating the email, but the mail function on your web host. Here is how the causes rank on the Malaysian stores we support:

Why WooCommerce Order Emails Fail — Share of ZenWeb Cases
Root causes of WooCommerce order emails not sending or not arriving, ZenWeb client tracking 2024 to 2026.
Root causeShare of cases
Hosting PHP mail blocked, limited or unauthenticated

36%

Missing SPF, DKIM or DMARC (emails land in spam)

22%

Orders stuck on Pending payment (no email triggered)

15%

Gmail or Yahoo address used as the “From” address

11%

Notification disabled or wrong recipient

9%

Plugin conflict or broken email template

7%

Source: From ZenWeb client tracking of Malaysian SME WooCommerce stores, 2024–2026. Illustrative of typical patterns, not WooCommerce data.

Notice that only the bottom two causes live inside WooCommerce. The top two are about your server and your domain. That is why reinstalling WooCommerce almost never helps, while fixing how mail leaves the server fixes most stores in one go.

Key takeaway: Think “delivery problem” before “WooCommerce problem”. Most missing order emails are created correctly, then lost on the way out.

Running a store on cheap hosting?

We build WooCommerce websites for Malaysian businesses with order emails, SMTP and DNS records set up properly before launch. See our web design services →


2. Which Order Status Sends Which WooCommerce Email?

Quick Answer: WooCommerce sends emails when an order changes status, not when the order is created. A Pending payment order sends no email at all. Processing sends the customer a receipt and you a New order alert, while Completed, On hold, Failed and Refunded each send their own email. If the status never changes, no email is ever created.

Before blaming your server, open WooCommerce > Orders and check the status of the order that “didn’t send”. The table below is based on WooCommerce’s email settings documentation:

WooCommerce Order Status vs the Email It Triggers
WooCommerce order statuses mapped to the built-in email each one triggers and who receives it.
Order statusEmail sentGoes to
Pending paymentNoneNobody
ProcessingProcessing order + New orderCustomer + store admin
On hold (e.g. bank transfer)Order on-hold + New orderCustomer + store admin
CompletedCompleted orderCustomer
FailedFailed orderStore admin + customer
CancelledCancelled orderStore admin
RefundedRefunded orderCustomer

Source: WooCommerce Docs — Email Settings and Email troubleshooting pages, compiled by ZenWeb, October 2026.

This matters a lot in Malaysia. Many stores take FPX online banking through a local payment gateway. If the gateway’s callback never reaches your site, the order sits on Pending payment and no email fires, even though the buyer’s bank shows a debit. That is a payment problem, not an email problem, and our guide to WooCommerce orders stuck on pending payment covers it step by step.

Key takeaway: Check the order status first. If it says Pending payment, stop troubleshooting email and fix the payment callback.

3. How to Check WooCommerce Email Settings and Logs

Quick Answer: Go to WooCommerce > Settings > Emails, confirm each order email is enabled and has the right recipient, and set a “From” address on your own domain. Then send a test email from the Email preview section and read WooCommerce > Status > Logs filtered to transactional-emails. The log tells you whether the email was sent, failed, disabled or skipped.

These steps follow WooCommerce’s email troubleshooting page, checked in October 2026. You need an Administrator or Shop Manager login.

  1. Check each notification is on. Go to WooCommerce > Settings > Emails, click Manage next to New order, Processing order and Completed order, and confirm Enable this email notification is ticked.
  2. Check the recipient. In the New order email, the Recipient(s) field accepts several addresses separated by commas. A staff member who left last year is a common culprit.
  3. Fix the “From” address. Below the notifications table, set the “From” name and “From” address. Use an address on your store’s domain, such as [email protected], never a Gmail or Yahoo address.
  4. Send a test email. In the Email preview section, pick a template and click Send a test email to your own inbox and one outside address.
  5. Place a real test order. Use a cheap product or a coupon and a payment method that moves the order to Processing.
  6. Read the log. Go to WooCommerce > Status > Logs and filter by the transactional-emails source.

How to read the log result:

  • Sent. WooCommerce handed the email to your mail system. If nobody received it, the problem is delivery, so go to Section 4.
  • Failed. The mail service returned an error. Your host’s PHP mail is likely blocked, so SMTP is the fix.
  • Disabled. The email is turned off in settings. Go back to step 1.
  • Skipped. A required condition was missing, often an empty recipient.

Emails that are “Sent” but land in junk are a separate deliverability issue. Our guide on emails going to spam explains how inbox providers judge your domain.

Key takeaway: The transactional-emails log turns guesswork into one word. “Failed” means fix sending; “Sent” means fix delivery.

4. How to Fix WooCommerce Emails With SMTP and DNS Records

Quick Answer: Stop relying on your server’s PHP mail. Install an SMTP plugin and connect it to your business email or a transactional email service, so every order email is sent with a login. Then add SPF and DKIM records for your domain in your DNS. Together these fix both “Failed” and “Sent but never arrived” results.

WooCommerce itself recommends a dedicated SMTP provider over your server’s native mail function. Here is why the change makes such a difference:

Default PHP Mail vs Authenticated SMTP for WooCommerce Emails
Comparison of default PHP mail and authenticated SMTP sending for WooCommerce order emails across five factors.
FactorDefault PHP mailAuthenticated SMTP
Login when sendingNoneUsername and password or API key
Shared server reputationShared with every site on the serverTied to your own domain
SPF and DKIM alignmentOften failsPasses once DNS is set
Hourly sending limitsLow caps on many entry plansSet by your email plan
Delivery log you can checkRarelyUsually included

Source: WooCommerce Docs — Email troubleshooting; Gmail Help — Email sender guidelines; hosting observations from ZenWeb audits of Malaysian SME stores, 2024–2026.

The fix, in order:

  • Pick a sending account. Use your Google Workspace or Microsoft 365 mailbox, or a transactional email service. Our guide to business email hosting in Malaysia compares the options in RM.
  • Install an SMTP plugin. Use a well-reviewed plugin from the WordPress plugin directory and enter the SMTP host, port, login and the same “From” address you set in WooCommerce.
  • Add SPF and DKIM. Gmail’s email sender guidelines require every sender to set up SPF or DKIM. Add both, plus a DMARC record.
  • Test again. Repeat the test order from Section 3 and check that the log says Sent and the email reaches a Gmail inbox, not spam.

Edit DNS carefully. A typo in your records can also break your normal inbox, as our guide to business email not receiving messages explains. Your SPF and DMARC records also stop others faking your domain, which we cover in stopping business email spoofing.

Key takeaway: SMTP plus SPF and DKIM is the permanent fix. Everything else in this guide only removes the blockers in front of it.

Not comfortable editing DNS records?

We set up SMTP, SPF, DKIM and DMARC for Malaysian online stores and test every order email before handing it back. Get WooCommerce email setup from ZenWeb →


5. What If the Log Still Shows a Failure?

Quick Answer: If emails still fail after SMTP is set up, look for a plugin conflict or a broken custom template. WooCommerce advises disabling every plugin except WooCommerce, switching to a default theme and testing again. Also check your host is not blocking outgoing SMTP ports and that your server has enough memory to finish the request.

Work through these on a staging copy, or outside business hours on the live store:

  • Plugin conflict. Email customiser, multi-currency and checkout plugins sometimes break email sending. Deactivate them one at a time and test after each.
  • Theme template overrides. Go to WooCommerce > Status and scroll to the Templates section. Outdated email template overrides in your theme can cause fatal errors.
  • Blocked SMTP ports. Some shared hosts block outgoing ports such as 587 or 465. Ask your host, or use an email service that offers an API connection instead.
  • Server limits. A “memory exhausted” error in the log can kill the request before mail is sent. See our fix for the WordPress memory limit exhausted error.

Deactivating plugins on a live shop has side effects. You may briefly see a WooCommerce add to cart button missing, shipping not showing at checkout or an Elementor editor that won’t load. If an interrupted update leaves a maintenance notice up, follow our guide to WordPress stuck in maintenance mode.

Key takeaway: When SMTP is correct but sending still fails, the cause is inside the site. Test with plugins and theme stripped back, ideally on staging.

6. How Long Does It Take to Fix WooCommerce Emails?

Quick Answer: Settings fixes take minutes. Setting up SMTP takes about an hour. DNS changes for SPF and DKIM usually work within a few hours but can take up to 48 hours to spread. Rebuilding your domain’s sending reputation after weeks of spam-folder delivery can take a few weeks of clean sending.

Use these ranges to plan, not as a promise. Your host’s support queue and DNS provider affect the real time.

Typical Time to Fix WooCommerce Order Emails, by Cause
Typical time to fix WooCommerce order emails not sending for each root cause.
CauseTypical time to fix
Notification disabled or wrong recipient

5–10 minutes

SMTP plugin and sending account

30–90 minutes

Plugin conflict or template override

1–3 hours

SPF, DKIM and DMARC records

Few hours–48 hours

Damaged domain sending reputation

2–6 weeks

Source: ZenWeb operational observations across Malaysian client WooCommerce stores, 2024–2026. DNS and host response times vary.

While you wait, protect the orders already placed. Export the recent order list, email or WhatsApp affected buyers a confirmation, and add a line on the thank-you page telling customers their order number. If your store also runs ads, check that conversions are still recorded, because a broken checkout often shows up as Google Shopping ads not showing or Meta catalog products getting no impressions at the same time.

Key takeaway: Sending can be fixed in an afternoon. Inbox trust takes longer, so tell affected customers directly instead of waiting.

7. How to Stop WooCommerce Order Emails Failing Again

Quick Answer: Keep SMTP connected and its password current, keep SPF and DKIM records in place when you change email providers, and place a test order after every plugin update or hosting move. A monthly check of the transactional-emails log catches silent failures before customers notice.

We run this routine on the stores we maintain:

  • Test order after updates. Place one order after any WooCommerce, gateway or theme update and confirm both emails arrive.
  • Watch password changes. If someone changes the mailbox password used by SMTP, sending stops overnight. Use an app password or API key instead.
  • Move DNS with care. When you switch hosting or email provider, copy your SPF, DKIM and DMARC records across first.
  • Keep two recipients. Send New order alerts to two staff inboxes so one full or forwarded mailbox doesn’t hide orders.
  • Check analytics too. A checkout change that breaks email often breaks tracking, shown as (not set) in GA4 reports or GA4 custom events not showing.

The same habits keep your other site emails healthy, including form emails going to spam.

Key takeaway: One test order after every change is the cheapest insurance a store can buy. It takes two minutes and catches almost every silent failure.

8. When Should You Call in an Expert?

Quick Answer: Get help when the log keeps showing Failed after SMTP is set up, when you are unsure how to edit DNS records, when your domain is already landing in spam everywhere, or when missing emails come with other site errors. These cases risk breaking your normal inbox or your live checkout.

Escalate when you see any of these:

  • DNS feels risky. One wrong SPF or MX record can stop all company email, not just order alerts.
  • Your host won’t help. Blocked ports or strict sending caps on a cheap plan may mean the store has outgrown its hosting.
  • Google cannot reach the site. If Search Console also reports a DNS resolution error, the domain setup itself needs attention.
  • Strange emails go out. Emails you didn’t send can mean a hacked site or spoofed domain, which needs a security check first.

ZenWeb is a Google Partner agency that has worked with 500+ Malaysian businesses. Our web design and WooCommerce services include email, SMTP and DNS setup, so we can trace the failure, fix it without touching your live orders and test every notification before handing back.

Key takeaway: Settings and test emails are safe DIY steps. DNS, hosting limits and security problems are where expert help saves time and risk.

9. Conclusion

WooCommerce emails not sending feels like the store is broken, but the orders are usually fine and the email is lost on the way out. Work in order: check the order status, confirm each notification is enabled, send a test email, read the transactional-emails log, then move sending to SMTP with SPF and DKIM in place. Finish with a test order after every change. For more ways to keep your website and marketing running smoothly, start at the ZenWeb home page.


10. Frequently Asked Questions

1. Why does WooCommerce send the admin email but not the customer email?

Each email is a separate notification. Check that Processing order and Completed order are enabled under WooCommerce > Settings > Emails. If they are, the customer’s provider is probably filtering your mail, so set up SMTP with SPF and DKIM.

2. Can I use my Gmail address as the WooCommerce “From” address?

No. WooCommerce warns that a Gmail, Yahoo or similar public address is likely to push emails into spam. Use an address on your store’s own domain, and send through SMTP linked to that domain.

3. Why did no email go out for an order that was paid?

The order is probably still on Pending payment, which triggers no email. This usually means the payment gateway’s callback did not reach your site. Fix the payment status first and the emails will follow.

4. Do I need a paid service to fix WooCommerce emails?

Not always. Many stores send order emails through the business mailbox they already pay for, using an SMTP plugin. Stores with high order volumes often move to a transactional email service for better logs and limits.

Customers still asking “did my order go through”?

Tell us what the log shows and when it started. We will fix sending, set up your DNS records properly and test every order email end to end.

Fix my store emails →

Table of Contents
Table of Contents

Get A Free Proposal

Complete the form and our team will contact you to discuss your goals. Let’s grow your business.