How to Fix WordPress Not Sending Emails

WordPress

How to Fix WordPress Not Sending Emails

Fix missing WordPress emails by checking form settings, sender details, server mail, SMTP delivery, and domain authentication.

By Xenoy··Updated September 19, 2026
How to Fix WordPress Not Sending Emails

A contact form says "sent," but no message arrives. A password reset disappears. A new-user notification never reaches the inbox. Most people call this "WordPress not sending email." But there are two separate questions: did WordPress create the message, and did the mail system deliver it? Finding that boundary is the fastest route to a fix.

Quick Checks for WordPress Email Problems

  1. Submit one form using an address you can check. Note the time and the form used.
  2. Check spam, promotions, and quarantine folders.
  3. Test a second recipient on a different provider (Gmail, Outlook, Yahoo).
  4. If one receives and the other doesn't, it's a deliverability problem, not WordPress.
  5. If neither receives, install an SMTP plugin and send a test email.

Fix 1: Check the Sender Address

Go to Settings → General. Check the admin email. Then check the notification settings inside your contact form, membership, or WooCommerce plugin.

Use a real sender on your own domain, like [email protected]. Don't put a visitor's Gmail or Yahoo address in the From field. Use it as Reply-To instead. Sending from a domain you don't control fails SPF and DKIM checks, and providers silently drop the message.

Fix 2: Install an SMTP Plugin

WordPress uses the wp_mail() function. By default, it hands the message to the server's mail system. On shared hosting, that system is often unreliable or blocked. A successful wp_mail() call doesn't guarantee inbox delivery.

Install an SMTP plugin and connect it to a transactional email service. These are the common options:

  • WP Mail SMTP — works with Gmail, SendGrid, Mailgun, Amazon SES, and others
  • Fluent SMTP — free, supports multiple providers
  • Post SMTP — good logging and email testing built in

Connect it to a transactional provider:

  • SendGrid
  • Mailgun
  • Amazon SES
  • Postmark
  • Brevo

Don't use a personal Gmail account as a workaround. It has low sending limits and Gmail may block it.

After configuring SMTP, send a test email. Then test the original form or password reset again.

The official WordPress mail documentation explains how server configuration affects delivery.

Fix 3: Add SPF and DKIM Records

Without SPF and DKIM, most providers treat your email as suspicious. Ask your email provider for the DNS records. Add them in your domain's DNS panel.

Two things to watch:

  • Only one SPF record per hostname. If you already have one, merge the new sender into it. Don't add a second SPF record.
  • DKIM uses a public key in DNS. Your provider gives you the exact record to paste.

If you publish DMARC, start with p=none and review reports before enforcing strict rejection. DNS changes can take a few hours to propagate.

Fix 4: Check Plugin and Server Logs

If SMTP is configured and DNS records are set but emails still fail, check the logs:

  • SMTP plugin log — WP Mail SMTP, Fluent SMTP, and Post SMTP all have built-in logs. They show whether the provider accepted or rejected the message.
  • Form plugin log — Contact Form 7, WPForms, and Gravity Forms keep their own logs.
  • Hosting PHP error log — Look for Connection refused or SMTP connect() failed.
  • Provider activity log — SendGrid, Mailgun, and Postmark show delivery, bounces, and rejections.

Firewalls can block outbound connections to SMTP ports. Ask your host to confirm that ports 587 and 465 are open.

If password-reset emails also fail, don't keep requesting dozens of messages. Fix delivery first or use a secure recovery method from your host.

Fix 5: Test Before Closing the Issue

Send a test email from the SMTP plugin. Then submit the original form. Then trigger a password reset. Check that all three arrive.

Send from the site to a Gmail address, an Outlook address, and a Yahoo address. If all three arrive, the issue is fixed.

If a paid form or email plugin caused the issue, send the developer the exact error from the log and your plugin version numbers. Never share passwords or admin credentials.

That's It

Most WordPress email problems come down to a bad sender address, no SMTP, missing SPF or DKIM records, or a firewall blocking the connection. Work through the fixes in order. Change one thing at a time.

Once email works, send a test once a month. Keep the sender mailbox active. Remove invalid addresses from automated lists.

X

About the author

Xenoy

View profile

Continue reading