Most WooCommerce email problems are not WooCommerce problems. The platform hands each message to WordPress, which hands it to the server’s PHP mail function, and that function sends unauthenticated mail that many providers reject or file as spam. The usual fix is an SMTP plugin pointed at a real mail service, which resolves the majority of cases on its own. Before reaching for it, three things take a minute to rule out: the email being switched off, the order never reaching the status that triggers it, and the message sitting in a spam folder. Below: every cause in order of how often it turns out to be the answer, with the fix for each.
Why WooCommerce is not sending emails
| Cause | Fix |
|---|---|
| The server sends unauthenticated mail through PHP mail() | Install an SMTP plugin and point it at a real mail service |
| The sender address is on a domain the server is not authorised to send for | Use an address on your own domain, with SPF and DKIM set up |
| The email is disabled in settings | Tick Enable this email notification for that email |
| It is being delivered to spam | Check the spam folder first, then fix authentication |
| The order never reached the status that triggers the email | Check the order status rather than the mail system |
| Another plugin is blocking or overriding mail | Deactivate security, caching and SMTP plugins one at a time and retest |
| The host blocks or rate-limits outgoing mail | Ask the host directly; shared hosting often caps hourly volume |
| You are waiting for an email that was never meant for you | New order, cancelled and failed notifications go to the admin only |
The first two account for most reports. PHP’s mail function sends without authentication, so the receiving server has no way to verify the message came from you, and modern spam filtering treats that as a strong negative signal. Nothing in WooCommerce can compensate for it, which is why the fix always lives outside WooCommerce.
How to work out which one it is
Four steps, in this order, because each rules out a layer.
1. Check the order status. If a customer says they got no confirmation, look at their order. An order stuck on Pending payment has triggered nothing, and no amount of mail configuration will change that. This costs ten seconds and is the answer more often than it should be.
2. Send a test email. Any plugin with a test send, or the test feature in ShopMagic, will tell you whether the site can send at all. Send to two different providers, for example one Gmail address and one on another domain, because a message that arrives at one and not the other is a reputation problem rather than a sending problem.
3. Check spam, then score the message. Look in the spam folder before anything else. Then send to an address generated by Mail Tester, which scores out of ten and names what is missing. A score of 6 or below means your messages are likely to be filtered no matter what you write in them.
4. Read a log. WooCommerce logs live under WooCommerce → Status → Logs, and plugins with their own queue record what ran and what failed. A log entry saying the email was sent moves the problem downstream to the server or the recipient; no entry at all moves it upstream to the trigger.
Fix 1: stop using PHP mail, start using SMTP
This is the change that fixes most sites, and it costs nothing.
An SMTP plugin makes WordPress authenticate with a mail service before sending, so your messages arrive with credentials rather than as anonymous traffic from a web server. The service can be a transactional provider, your own mail host, or a business mailbox you already pay for.
Two things matter when setting it up. The sender address must belong to the account you authenticate with, otherwise you have swapped one authentication failure for another. And SPF and DKIM records must exist for your domain, which the mail service will tell you how to add. Without those, deliverability stays poor even over SMTP.
Fix 2: use a sender address on your own domain
Check WooCommerce → Settings → Emails and look at the “From” address. If it is on a free mail provider, the receiving server sees a message claiming to come from that provider but sent by your web host, which is exactly what a forged email looks like.
Use an address on the domain your shop runs on. While you are there, make sure it matches the administration email in Settings → General, since a mismatch between the two is a common source of confusion about which address is actually being used.
Fix 3: rule out plugins and the host
Plugins. Security plugins, caching plugins and more than one SMTP plugin running at once all interfere with mail. Deactivate them one at a time, testing after each, rather than all at once, which tells you nothing about which was responsible.
The host. Shared hosting commonly limits outgoing messages per hour, and some providers block mail from web applications entirely. If tests pass intermittently, or stop working after a busy day, a volume cap is the likely explanation. Ask the host directly what the limit is, and whether PHP mail() is permitted at all.
When nothing is actually broken
Two cases look like failures and are not.
The email is admin-only. New order, cancelled order and failed order notifications are sent to the store administrator by design. A customer who never receives one is not missing anything, because WooCommerce never intended to send it to them. The customer’s confirmation is the Processing order email, which fires when payment clears.
The status was never reached. Every WooCommerce email hangs off a status change. If your workflow never marks orders Completed, the Completed order email will never send, and the mail system is working perfectly.
Both of these need a different email rather than a repair, which is what a plugin that can trigger on other events provides.
ShopMagic
Resolve the problem of WooCommerce not sending emails once and for all! Try ShopMagic and forget about WooCommerce not sending emails to customers.
Download for free or Go to WordPress.orgCommon questions about ShopMagic
These answer the support questions we are asked most often about the plugin itself.
- How to download and install ShopMagic
- How to create your first automation
- How to activate add-ons and PRO
- How to test and preview an email
- ShopMagic is not sending emails
- Where to set the logo, site title and sender address
- Can I use custom HTML?
- Why is there no option to delay an email?
- Errors or warnings in the WooCommerce logs
- How to add multiple recipients
- Custom events and placeholders
- Mailchimp integration is not working
- What are Lists and opt-ins?
How to download and install ShopMagic
From WordPress.org or from the Plugins screen in your dashboard. Installation is the same as for any other plugin.
ShopMagic
Resolve the problem of WooCommerce not sending emails once and for all! Try ShopMagic and forget about WooCommerce not sending emails to customers.
Download for free or Go to WordPress.orgHow to create your first automation
Go to ShopMagic → Dashboard → Create automation.

The editor has three parts: an Event that starts it, a Filter that decides who qualifies, and an Action that happens. They can be reordered on the screen to suit how you think about them.
How to activate add-ons and PRO
How to test and preview an email
Open the automation and click Send test, confirm the address, then click the Send test email button.
The test uses data from your most recent order, so the store needs at least one order before the feature will produce anything meaningful.
ShopMagic is not sending emails
Work through the causes above first, since this is usually a server issue rather than a plugin one. Then these four checks, specific to the plugin:
- Are WooCommerce’s own emails arriving? If neither WooCommerce nor ShopMagic emails get through, the problem is on the server. Your host is the right first call.
- Send a test to two different addresses at two different providers. Both arrive: the plugin works, and anything else is a conflict or a reputation problem. Neither arrives: check spam, then continue.
- Create a test automation on the New Order event, place a test order, and check Outcomes in the ShopMagic menu. Completed means the message was handed off successfully, so the problem is downstream. Failed means contact us.
- Deactivate SMTP plugins temporarily and repeat the test. Two mail-handling plugins running at once is a common and confusing conflict.
Where to set the logo, site title and sender address
ShopMagic uses the WooCommerce settings for these. Go to WooCommerce → Settings → Emails and scroll down.

Logo, footer text, sender name and address, and the colour palette all live there and apply to both.
Can I use custom HTML?
Yes. Select Source view in the email editor and paste your code into the message field, or use the Send email – Raw HTML action for a complete HTML document.
Why is there no option to delay an email?
Because delays come from the Delayed Actions add-on, which is part of ShopMagic PRO. If you have PRO and activated it and the option still does not appear, get in touch.
ShopMagic PRO £69
Resolve the problem of WooCommerce not sending emails once and for all! Try ShopMagic and forget about WooCommerce not sending emails to customers.
Add to cart or View DetailsErrors or warnings in the WooCommerce logs
Send them to us with three things, which together usually let us answer in one reply:
- Versions of WordPress, WooCommerce, ShopMagic and PHP. The quickest way is System Status → Get system report → Copy for support.
- The error itself, copied from the WooCommerce logs.
- Whether the plugin is otherwise working. A warning alongside working automations is usually cosmetic; one alongside a broken automation is not.
How to add multiple recipients
Two approaches if the To field does not cover what you need:
- Duplicate the automation and put the second address in the To field of the copy.
- Enable the BCC field with this filter:
add_filter( 'shopmagic/core/action/sendmail/enable_bcc', '__return_true' );
Custom events and placeholders
Both are supported.
Mailchimp integration is not working
Check the connection in ShopMagic settings, under the Mailchimp tab. The API Key field needs a valid key from your Mailchimp account. Save, then try again.
With the key saved, Add Customer to the Mailchimp list becomes available as an action.
What are Lists and opt-ins?
Optional features for managing marketing consent. If you do not need them, leave them alone.
To remove Communication Preferences from the My Account page:
add_filter( 'shopmagic/core/communication_type/account_page_show', '__return_false' );
Summary
When WooCommerce stops sending emails, the cause is almost never WooCommerce. Messages pass from WooCommerce to WordPress to the server’s PHP mail function, and that function sends without authentication, which is why so many of them are rejected or filtered. An SMTP plugin pointed at a real mail service, with SPF and DKIM configured for your domain and a sender address that belongs to it, fixes the majority of cases.
Before changing anything, spend a minute on three checks that cost nothing: look at the order status, because an order stuck on Pending payment has triggered no email at all; look in the spam folder; and confirm the email is enabled in WooCommerce → Settings → Emails. After that, send a test to two different providers, run the message through Mail Tester, and read the logs, since a message that was logged as sent puts the problem downstream and one that was never logged puts it upstream.
Two situations look like failures and are not. New order, cancelled order and failed order notifications are admin-only, so a customer was never going to receive them. And an email tied to a status your workflow never uses will never fire, however healthy the mail system is. Both need a different email rather than a repair.
Frequently asked questions
Why is WooCommerce not sending emails?
Most often because the server sends them through PHP’s mail function without authentication, so receiving servers reject them or file them as spam. An SMTP plugin pointed at a real mail service is the usual fix.
How do I know whether it is WooCommerce or my server?
Send a test email. If nothing arrives at two different providers, the problem is the server. If tests arrive but order emails do not, the problem is the trigger or the settings.
Do I need an SMTP plugin for WooCommerce?
In practice, yes for any store that depends on its emails arriving. Unauthenticated mail from a web server is treated as suspicious by every major provider.
Why do my emails go to spam?
Usually missing SPF and DKIM records, or a sender address on a domain your server is not authorised to send for. Mail Tester will name which one applies.
My customer says they got no order confirmation. What first?
Check the order status. An order on Pending payment has triggered nothing, and no mail configuration will change that.
Can another plugin block WooCommerce emails?
Yes. Security plugins, caching plugins and a second SMTP plugin all can. Deactivate them one at a time rather than together, so you learn which one it was.
Can my hosting block outgoing emails?
Yes, and shared hosting frequently limits messages per hour. Intermittent delivery that fails on busy days points at a volume cap.
Why do customers never get the new order email?
Because it is an admin notification by design. Their confirmation is the Processing order email, sent once payment clears.







