WooCommerce Not Sending Order Emails? Causes & Fix
If customers aren't getting order confirmations, or you're not getting the new-order notification, WooCommerce is almost always trying to send — the mail just never reaches the inbox. Here's how to find the exact reason and fix it.
Last updated: 14 Jul 2026 · ~6 min read
The #1 cause is WordPress's built-in PHP mail (wp_mail), which is unreliable on most hosts — it gets silently dropped or spam-filtered. The fix is to send WooCommerce email through authenticated SMTP instead: install an SMTP plugin, point it at a real mailbox or transactional provider, and set up SPF/DKIM so mailboxes trust it.
Why WooCommerce emails silently fail
By default, WordPress sends mail through the server's PHP mail() function. Many hosts throttle it, block it outright, or send from an unauthenticated address that lands straight in spam. The worst part: delivery fails silently. WooCommerce marks the email as "sent," the order screen looks perfectly healthy, and yet the customer gets nothing and you never see the admin notification. Because nothing errors, the problem can run for weeks before anyone notices a pattern of "did my order go through?" support tickets.
The most common causes (most likely first)
- The host blocks or throttles PHP mail, and no SMTP is configuredDefault wp_mail with no SMTP plugin — the most common cause by a wide margin.
- The specific email is toggled off or misconfiguredIn WooCommerce → Settings → Emails, that notification's "Enable" box is unchecked, or its recipient field is blank.
- Emails send but land in spam — failing SPF/DKIMThe from-address domain doesn't authenticate, so receiving mailboxes junk the message.
- Wrong from-address or an unmonitored admin recipientNotifications go to an address nobody checks, or a typo'd from-address bounces.
- A transactional-email or SMTP plugin conflict / bad credentialsThe SMTP plugin is misconfigured, or its API key or password is invalid.
Where to look first
- Rule out config first. Open
WooCommerce → Settings → Emailsand confirm the emails you're missing are enabled, with the correct recipients — a disabled toggle or blank address means nothing is being sent in the first place. - If they're on but not arriving, it's almost always delivery. Install and configure an SMTP plugin so mail sends through an authenticated mailbox or transactional provider instead of the server's raw
PHP mail(), which most hosts silently drop. - Set a proper from-address and authenticate the domain. Use a from-address on your own sending domain and add SPF and DKIM records so receiving mailboxes trust the mail instead of junking it.
- Send a test email, then place a test order. Confirm the test email lands in the inbox, then check that a real order produces both the customer receipt and the admin new-order notification.
Not sure why they're failing?
That's the slow part — is it a config toggle, a mail-delivery failure, or an SMTP conflict? DiagnosticIQ's free dashboard checks email-sending health as part of the money-path scan, and the AI pinpoints which of the three it is in about 30 seconds. And it keeps watching after the fix — so if emails stop going out again, you hear it from DiagnosticIQ, not from a customer.
Get the free plugin →Made by Prima Digital — the team behind this guide. Free forever; no card to install.
How to know you fixed it
A test email from the SMTP plugin arrives in the inbox (not the spam folder), and a real test order produces both the customer confirmation and the admin new-order notification. When all three land in a normal inbox, your order-email path is healthy again.
Frequently asked
Which emails is WooCommerce supposed to send?
Customer emails (order confirmation, processing, completed, refunded, and account mails) plus admin notifications (new order, cancelled, failed) — each a separate template with its own toggle and recipient, which is why some can fail while others work.
Do you recommend a specific SMTP plugin?
We stay vendor-neutral — any reputable SMTP or transactional-email setup works, as long as mail leaves through an authenticated connection with valid SPF/DKIM instead of raw PHP mail.
Why do only SOME order emails fail?
Each notification has its own toggle and recipient so one can be off while others are on, and spam heuristics differ by template and mailbox, so a differently-worded or stricter-inbox email can get junked while others deliver.