
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.
Source video: Watch on YouTube (WooCommerce solutions)
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:
| Root cause | Share 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.
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 →
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:
| Order status | Email sent | Goes to |
|---|---|---|
| Pending payment | None | Nobody |
| Processing | Processing order + New order | Customer + store admin |
| On hold (e.g. bank transfer) | Order on-hold + New order | Customer + store admin |
| Completed | Completed order | Customer |
| Failed | Failed order | Store admin + customer |
| Cancelled | Cancelled order | Store admin |
| Refunded | Refunded order | Customer |
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.
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.
How to read the log result:
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.
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:
| Factor | Default PHP mail | Authenticated SMTP |
|---|---|---|
| Login when sending | None | Username and password or API key |
| Shared server reputation | Shared with every site on the server | Tied to your own domain |
| SPF and DKIM alignment | Often fails | Passes once DNS is set |
| Hourly sending limits | Low caps on many entry plans | Set by your email plan |
| Delivery log you can check | Rarely | Usually 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:
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.
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 →
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:
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.
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.
| Cause | Typical 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.
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:
The same habits keep your other site emails healthy, including form emails going to spam.
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:
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.
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.
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.
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.
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.
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.
Get A Free Proposal
Complete the form and our team will contact you to discuss your goals. Let’s grow your business.
Chat with us on WhatsApp
Tell us a little about what you need. We'll open WhatsApp with your message ready to send.