Troubleshooting

WordPress Emails Not Sending? The Deliverability Fix Checklist

Password resets, order notifications, quote requests — WordPress mail fails silently for weeks before anyone notices. Why wp_mail() fails and the SMTP setup that fixes it.

WordPress Emails Not Sending? The Deliverability Fix Checklist

WordPress email fails quietly. Password resets vanish, WooCommerce order confirmations never arrive, contact forms go silent — and because the form page still says “Thank you”, nobody notices for weeks. We debug mail on a large share of client sites; the causes repeat so reliably that this checklist resolves nearly every case.

Why wp_mail() usually fails

  • PHP mail() is the root problem. WordPress defaults to your server’s mail function — no authentication, whatever From header PHP defaults to. Modern receiving servers (Gmail, Outlook) score it as spam or reject it outright. Deliverability research across the industry is unanimous: authenticated SMTP wins.
  • Missing DNS records. Even with correct SMTP, sending domains without SPF/DKIM/DMARC records fail alignment checks at Gmail and Microsoft. This is a DNS panel fix, not a plugin fix.
  • The From-header trap. Plugins setting a From address that doesn’t match the sending domain trips DMARC alignment. Use the same domain for sending and From, always.

The fix, in order

  1. Install an SMTP plugin (WP Mail SMTP, FluentSMTP, Post SMTP — functionally equivalent for this purpose) and connect a real mail provider: your host’s SMTP, a transactional service (Postmark, Brevo, SES), or Google Workspace SMTP. Credentials, port 587, STARTTLS.
  2. Send a test email to your own Gmail and check the spam folder — arriving in spam means DNS work remains.
  3. Add DNS records for your sending domain: SPF includes your provider’s record, DKIM keys from the provider, DMARC at least at p=none with reporting to observe. These are copy-paste records the providers document.
  4. Verify alignment: send to a Gmail account and use “Show original” — the authentication results line shows SPF/DKIM/DMARC pass/fail. All three green = done.

Diagnosing what already broke

  • Turn on the SMTP plugin’s logging — most keep a send log with the SMTP server’s rejection message. “Authentication failed” vs “relay denied” vs “spam detected” point at different fixes.
  • Forms that “send” but never arrive: the form works, mail does not — same checklist. The scenario analysis for quote flows is in the quote-request guide.
  • Emails arriving in spam only: DNS records. Not the plugin, not the content — alignment.
  • Only some recipients missing: often Microsoft/Outlook-specific rejection; their bulk-sender requirements are stricter. The provider’s DMARC/SPF documentation covers it.

What this fixes beyond email

Recovery-mode emails (see the critical error guide) only work if mail delivers — fixing SMTP restores your safety net. For B2B sites, email is the product: quote requests, order notifications, license keys. The free audit tests your site’s mail configuration as part of its stack review.

Why are my WordPress emails going to spam?

Usually missing or misaligned DNS records: SPF, DKIM, and DMARC must all pass for the sending domain. Configure authenticated SMTP first, then add the provider's DNS records.


Do I really need an SMTP plugin?

Yes for anything that matters — PHP mail() sends unauthenticated mail that major providers filter aggressively. An SMTP plugin plus real credentials is the baseline fix.


How do I test WordPress email sending?

Use the SMTP plugin's built-in test send to a Gmail address, then inspect it via 'Show original' — the authentication results show SPF/DKIM/DMARC pass or fail with reasons.


Which SMTP provider should I use?

A transactional service (Postmark, Brevo, Amazon SES) for reliability beyond ~hundreds of mails daily. Hosting SMTP works for low volume; Gmail SMTP hits sending caps quickly.


Why did the recovery mode email never arrive?

Because wp_mail() was failing before the error did — the fatal-error handler uses the same broken mail path. Fix SMTP deliverability and the safety net restores itself.

The WPForge editorial team: WordPress and WooCommerce engineers with a decade of combined experience in store builds, speed optimization, migrations and plugin audits. Every guide is based on real client projects and hands-on testing, reviewed before publishing.

Revision history

  • October 2026 — Facts, version numbers and links re-verified against current vendor data.

We re-test and update our guides when tools change — see our editorial policy for how. Editorial policy →