---
title: "How to Fix WooCommerce Emails Not Sending"
description: "WooCommerce emails not sending? Fix SMTP, spam blocks, order-status triggers and WP-Cron with this practical checklist."
url: "https://maksut.net/woocommerce-emails-not-sending/"
language: "en-US"
datePublished: "2026-09-22T23:09:26+00:00"
dateModified: "2026-09-23T20:22:10+00:00"
author: "Maksut"
---

# WooCommerce Emails Not Sending: Fix Checklist

SMTP, spam filters, order-status triggers, and WP-Cron—fix the stack in order.

When **WooCommerce emails are not sending**, fix the stack in this order: (1) confirm the email is **enabled** for that order status under **WooCommerce → Settings → Emails**, (2) stop relying on PHP `mail()`—use authenticated **SMTP** or a transactional provider, (3) check spam/blocklists and “From” domain alignment (SPF/DKIM/DMARC), (4) verify **WP-Cron** or a real system cron is running, (5) test with a new order and a mail-logging plugin. Guest access after purchase: [guest order links](https://maksut.net/woocommerce-guest-order-links).

---

## Symptoms vs root causes

| What you see | Likely cause |
| --- | --- |
| No email for any order | SMTP / hosting mail blocked, or WP-Cron stuck |
| Only some statuses missing | Email type disabled or custom status without a template |
| Customer says “nothing arrived” | Spam folder, wrong address, or provider deferral |
| Admin gets mail, customer does not | Customer template off; admin “New order” still on |

## Step 1: Confirm WooCommerce email settings

1. Go to **WooCommerce → Settings → Emails**.
2. Open **Processing order**, **Completed order**, **New order** (admin), and any custom templates you use.
3. Ensure each needed email is **Enabled**, recipient fields are correct, and “From” name/address look legitimate.
4. Place a **test order** (or use an order-actions “Resend” if available) after each change.

Custom order statuses often need their own email wiring. Check the notification’s trigger and enabled state after every custom-status change.

## Step 2: Replace PHP mail with SMTP

Shared hosts frequently throttle or silently drop `mail()`. Use an authenticated SMTP plugin or transactional provider.

- Match the **From** domain to a domain you control.
- Publish **SPF**, **DKIM**, and preferably **DMARC** for that domain.
- Send a test email to Gmail and a corporate inbox; check spam.

## Step 3: Logging and conflict checks

- Enable an email log so you can see attempted versus delivered.
- Temporarily disable security or email-verification plugins that intercept checkout.
- Switch to a default theme briefly if a custom checkout template breaks hooks.
- Confirm the customer email on the order is valid.

## Step 4: WP-Cron and queues

If emails queue but never leave, WP-Cron may be disabled (`DISABLE_WP_CRON`) without a system cron replacement, or a heavy site may starve cron. Set a real server cron to hit `wp-cron.php`, or use an Action Scheduler-aware host setup.

### Do not “fix” deliverability with spoofed From addresses

Sending as `@gmail.com` from your server will fail SPF checks. Use your domain or the provider’s verified sender only.

## Related store fixes

After mail works: fix shipping surprises that trigger support mail storms ([wrong shipping cost](https://maksut.net/woocommerce-checkout-wrong-shipping-cost)), and keep guest buyers able to view orders ([guest order access](https://maksut.net/woocommerce-guest-order-links)).

## FAQ: WooCommerce emails not sending

**Why did WooCommerce emails suddenly stop?**

Common triggers include expired SMTP credentials, a security-plugin update, or WP-Cron stopping after a migration.

**Is WooCommerce broken if PHP mail works in a test plugin?**

Not necessarily—check whether the specific order-status email is enabled and whether a custom status fires that template.

**Do I need a paid email API?**

Not always. Authenticated SMTP can work at low volume. Transactional APIs scale better and usually improve inbox placement.

**Customers only miss Completed emails**

Open the Completed order template and confirm it is enabled. Some stores stay on Processing and never flip to Completed—so the template never fires.

## Need WooCommerce help beyond this fix?

Custom checkout, shipping, catalog rules, and store architecture—scoped delivery, not endless hourly tickets.

[WooCommerce development](https://maksut.net/services/woocommerce/)

Also: [WordPress maintenance](https://maksut.net/services/wordpress/maintenance/) · [shipping troubleshooting](https://maksut.net/woocommerce-checkout-wrong-shipping-cost)

```json
{"@context":"https://schema.org","@graph":[{"@type":"WebSite","@id":"https://maksut.net/#website","url":"https://maksut.net/","name":"Maksut — Digital Systems Builder","description":"Custom WordPress and WooCommerce development with technical SEO and AI search visibility for businesses in the UK, Europe and worldwide. Work directly with Maksut.","publisher":{"@id":"https://maksut.net/#person"},"inLanguage":["en","tr"]},{"@type":"WebPage","@id":"https://maksut.net/woocommerce-emails-not-sending/#webpage","url":"https://maksut.net/woocommerce-emails-not-sending/","name":"How to Fix WooCommerce Emails Not Sending","isPartOf":{"@id":"https://maksut.net/#website"},"inLanguage":"en-US","datePublished":"2026-09-22T23:09:26+00:00","dateModified":"2026-09-23T20:22:10+00:00","mainEntity":{"@id":"https://maksut.net/woocommerce-emails-not-sending/#article"},"breadcrumb":{"@id":"https://maksut.net/woocommerce-emails-not-sending/#breadcrumblist"}},{"@type":"BlogPosting","@id":"https://maksut.net/woocommerce-emails-not-sending/#article","isPartOf":{"@id":"https://maksut.net/woocommerce-emails-not-sending/#webpage"},"headline":"How to Fix WooCommerce Emails Not Sending","url":"https://maksut.net/woocommerce-emails-not-sending/","inLanguage":"en-US","publisher":{"@id":"https://maksut.net/#person"},"wordCount":509,"mainEntityOfPage":{"@id":"https://maksut.net/woocommerce-emails-not-sending/#webpage"},"author":{"@id":"https://maksut.net/#person"},"datePublished":"2026-09-22T23:09:26+00:00","dateModified":"2026-09-23T20:22:10+00:00","description":"WooCommerce emails not sending? Fix SMTP, spam blocks, order-status triggers and WP-Cron with this practical checklist.","articleSection":"WooCommerce Engineering","speakable":{"@type":"SpeakableSpecification","cssSelector":[".entry-content .mks-aeo__direct > p.voice-answer:first-child"]}},{"@type":"BreadcrumbList","@id":"https://maksut.net/woocommerce-emails-not-sending/#breadcrumblist","itemListElement":[{"@type":"ListItem","position":1,"name":"Maksut.net","item":"https://maksut.net/"},{"@type":"ListItem","position":2,"name":"WooCommerce Engineering","item":"https://maksut.net/category/woocommerce-engineering/"},{"@type":"ListItem","position":3,"name":"How to Fix WooCommerce Emails Not Sending","item":"https://maksut.net/woocommerce-emails-not-sending/"}]},{"@type":"Person","@id":"https://maksut.net/#person","name":"Maksut","alternateName":["Maksut Maksutoğlu","Nebudil"],"url":"https://maksut.net/","jobTitle":"WordPress & WooCommerce Systems Builder","description":"WordPress and WooCommerce developer specialising in technical SEO and AI search visibility for businesses in the UK, Europe and worldwide.","knowsAbout":["Answer Engine Optimization","Generative Engine Optimization","AI Search Optimization","Content Strategy","Local SEO","Technical SEO","Schema.org","Entity SEO","Google Business Profile","Structured Data","WooCommerce","WooCommerce Maintenance","WordPress Development","WordPress Maintenance"],"knowsLanguage":["en","tr","fa"],"address":{"@type":"PostalAddress","addressLocality":"Istanbul","addressCountry":"TR"}}]}
```
