Symptoms
- WooCommerce emails do not appear in the expected inbox.
wp_mail()returns true, but the message is absent or in spam.- The SMTP provider reports authentication, sender, or policy failures.
Likely causes
Possibilities include a disabled WooCommerce email, a stale recipient address, local PHP mail limitations, SMTP authentication failure, blocked outbound ports, SPF or DKIM misalignment, DMARC policy, DNS propagation, reputation, or filtering. Treat each as a hypothesis until evidence supports it.
Diagnostic steps
- Confirm the WooCommerce email is enabled and inspect its recipient, From name, and From address.
- Generate one uniquely titled message and record the time, order ID, sender, and recipient.
- Check WordPress email logs or the SMTP provider event log. A successful handoff is not proof of inbox placement.
- Inspect spam and quarantine folders, then review the returned SMTP response or bounce.
- Verify SMTP host, port, encryption, authentication, and an allowed From address without exposing credentials.
- Query authoritative DNS for SPF, DKIM selector, and DMARC records; account for TTL and propagation.
- Confirm From, Return-Path, and DKIM signing-domain alignment with the provider’s documented requirements.
Resolution steps
Correct only the failed layer demonstrated by evidence: enable the email, repair the recipient, authenticate through a reputable provider, publish the provider-issued DNS values, fix sender alignment, or work with the receiving mail administrator. Re-test with a new unique subject and preserve the event result.
Escalation conditions
Escalate with sanitized SMTP response codes, timestamps, provider event IDs, DNS query results, and the affected sending domain when authentication succeeds but the provider rejects, defers, or suppresses delivery. Never include passwords or full customer data.
Customer-safe explanation
“WordPress handed the message to the configured mail system, but that step alone does not confirm inbox delivery. We are checking the mail-provider response and the domain authentication records to identify where delivery stopped.”