WordPress not sending emails usually means one of two things: WordPress cannot hand the message off correctly, or the message is being sent but never delivered. Those are very different problems, and the fix depends on which one you actually have.
Most email problems on WordPress come from server mail configuration, SMTP issues, bad sender settings, plugin conflicts, or deliverability failures caused by DNS and mailbox authentication. The good news is that you can usually isolate the cause quickly if you test the right things in the right order.
Quick Fix
- Send a test email from WordPress first.
- Check whether the email fails to send or sends but never arrives.
- Use SMTP instead of relying on the default PHP mail setup.
- Make sure the
Fromemail uses your site’s real domain. - Confirm SMTP host, port, encryption, username, and password are correct.
- Check spam, junk, quarantine, and mailbox filters.
- Disable other mail-related plugins temporarily.
- Check DNS records for SPF, DKIM, and DMARC if deliverability is poor.
- Review server logs and WordPress debug logs.
- Test with a simple contact form or password reset email after each change.
What Is “WordPress Not Sending Emails”?
WordPress sends email for many core actions: password resets, new user notifications, comment moderation, WooCommerce order emails, contact form messages, and plugin/security alerts.
When people say WordPress is not sending emails, they often mean one of three different problems:
- WordPress fails to send the message at all.
- WordPress sends the message, but the mailbox never receives it.
- Only certain emails fail, such as contact forms or WooCommerce notifications.
This distinction matters. If WordPress cannot send, you need to fix the sending method. If WordPress sends but the email never lands, the problem is usually deliverability, sender reputation, authentication, or spam filtering.
A successful handoff in WordPress still does not guarantee inbox delivery. That is why a “message sent successfully” result can still be misleading if the email never reaches the recipient.
Why WordPress Is Not Sending Emails
There is no single cause. But in real-world cases, the list is usually short.
1. Your Server Does Not Send Mail Reliably by Default
Many WordPress sites still rely on the default server mail function. That may work on some hosting, but it often fails or delivers poorly on modern hosting stacks. This is why SMTP fixes so many WordPress email problems.
2. SMTP Settings Are Wrong
If you already use SMTP, incorrect settings are one of the first things to check. Common problems include wrong SMTP hostname, wrong port, wrong encryption type, bad username or password, or the mailbox provider requiring app passwords or OAuth.
3. The From Address Does Not Match the Sending Domain
This causes both sending failures and poor deliverability. Examples: the site sends as gmail.com from your server, the site sends as a domain that is not authenticated, or the site uses a fake sender address the SMTP provider rejects.
4. SPF, DKIM, or DMARC Are Missing or Incorrect
This is one of the biggest reasons WordPress emails get lost after they “send.” If DNS authentication is missing or wrong, mailbox providers may reject the email, send it to spam, quarantine it silently, or rewrite trust.
5. A Plugin Conflict Is Interfering With Mail
Mail plugins, security plugins, form plugins, and optimization plugins can all affect email behavior. Typical issues: two SMTP plugins fighting each other, a form plugin bypassing your mail setup, a security plugin blocking outgoing requests, or custom code overriding wp_mail() behavior.
6. Your Host Blocks or Restricts Outgoing Mail
Some hosts limit or block outgoing mail, especially on shared hosting. This can appear as silent delivery failures, throttling, blocked port access, or mail accepted locally but never relayed correctly.
7. The Email Is Sending, But Going to Spam
This is one of the most misunderstood cases. The site owner says “WordPress is not sending emails,” but the real problem is that messages land in spam, are filtered by the recipient server, or are quarantined by Microsoft or Google-side policies.
8. Only One Type of Email Is Failing
If password reset emails work but contact forms do not, or WooCommerce emails fail while test emails succeed, the problem may be in the plugin that triggers the mail, not in WordPress mail itself.
How to Fix WordPress Not Sending Emails Step by Step
The fastest way to solve this is to separate sending failure from delivery failure.
1. Send a Test Email First
Do not start by guessing. Start by testing. Use your SMTP plugin’s test email tool, a contact form test, a password reset email, or a WooCommerce test order if relevant. Your first goal is simple: does the email fail to send, or does it send and disappear?
2. Check Whether the Problem Affects All Emails or Only Some
- If all emails fail → the sending method is likely broken.
- If test emails work but real emails fail → check the plugin triggering them.
- If emails send but do not arrive → focus on deliverability and DNS.
3. Use SMTP Instead of Default Mail
If you still rely on default mail sending, switch to SMTP. That means sending mail through a real authenticated mail service instead of depending on the hosting server’s default mail behavior. In practice, this is the single most common fix for WordPress email problems.
A typical SMTP setup needs: SMTP host, port, encryption type, username, password or app password, and a matching sender address.
4. Fix the From Email Address
Make sure the sender address is real and belongs to your domain.
Good example: support@yourdomain.com
Bad example: yourwordpresssite@gmail.com sent from a different server without proper authentication.
5. Verify SMTP Credentials Carefully
Do not assume the settings are correct because they used to work once. Check SMTP server name, port number, TLS or SSL setting, full username, correct password, and whether the provider now requires an app password or OAuth.
6. Check Spam and Delivery Filters
If test emails show “success” but nothing arrives, look beyond WordPress. Check spam folder, junk folder, quarantine, recipient mail server rules, and mailbox provider blocking policies. Especially test with more than one mailbox provider if possible.
7. Add or Fix SPF, DKIM, and DMARC
This is critical for inbox delivery. You want your domain DNS to clearly authorize the service that sends mail for your site. Confirm that SPF includes the correct sender, DKIM is enabled and valid, and DMARC exists and aligns with the sender domain.
8. Disable Other Mail-Related Plugins Temporarily
WordPress mail issues often get worse when more than one plugin tries to control email. Temporarily disable other SMTP plugins, email logging plugins, security plugins that may block remote mail requests, and form plugins only if you need to isolate the source.
9. Check Plugin-Specific Email Settings
If only one feature fails, inspect that plugin’s own email settings — WooCommerce email notifications, contact form recipient fields, membership plugin email templates, or notification toggles that were disabled by accident.
10. Check Logs for Real Errors
Look at WordPress debug log, SMTP plugin logs, PHP error log, hosting mail log if available, and mail provider activity log or dashboard. These often show whether authentication failed, the plugin never triggered the email, or the server blocked the connection.
11. Test the Mail Path Outside WordPress
If the setup still fails, isolate whether the problem is WordPress or the mail service itself. Test sending from the same mailbox directly through webmail, SMTP credentials in another client, and server DNS records independently.
12. Check Firewall, Hosting, and Port Restrictions
Some hosts restrict outbound SMTP ports or treat mail traffic aggressively. Check whether your host blocks SMTP ports, restricts outbound connections, requires approved mail relays, or limits email volume on shared hosting.
13. Enable Debug Logging Safely
If the issue is stubborn, enable WordPress debug logging briefly:
define('WP_DEBUG', true);
define('WP_DEBUG_LOG', true);
define('WP_DEBUG_DISPLAY', false);
Then reproduce the failed email action and inspect the debug log. Do not leave unnecessary debug settings enabled forever on a live site.
Advanced Troubleshooting
Separate “Send” Problems from “Inbox” Problems
A test tool may report success because WordPress handed the message to the mailer correctly. That still does not prove inbox delivery. Always ask: Did WordPress hand off the email? Did the SMTP provider accept it? Did the recipient mailbox provider trust it?
Compare Logged-Out vs Logged-In Actions
If contact forms fail but password resets work, the problem may be in the plugin or form logic. Test more than one email trigger.
Review Recent Changes First
Ask what changed before the problem started: new SMTP plugin, changed DNS, mailbox password reset, host migration, new firewall or security plugin, or PHP version change.
Check Whether Another Plugin Is Intercepting wp_mail()
Developers should inspect whether another plugin is filtering or overriding WordPress mail behavior. This is more likely if mail logs are inconsistent or multiple plugins try to manage email delivery.
Prevention Tips
- Use authenticated SMTP, not default mail, for production sites.
- Use a sender address on your own domain.
- Keep SPF, DKIM, and DMARC correct and documented.
- Do not run multiple SMTP plugins at the same time.
- Test password reset and contact form emails after major changes.
- Monitor mail logs regularly on stores and membership sites.
- Keep plugins minimal and remove abandoned mail-related plugins.
- Review deliverability after hosting or DNS changes.
When to Contact Support
Contact your hosting provider if outbound SMTP connections may be blocked, mail used to work before a server change, or you need access to server mail logs.
Contact your SMTP or mailbox provider if credentials look correct but auth still fails, the provider requires app passwords or OAuth, or messages are being rejected or quarantined.
Focus on WordPress-level troubleshooting if only certain plugin emails fail, logs point to wp_mail() or plugin conflicts, or another plugin may be intercepting messages.
FAQ
Why is WordPress not sending emails?
Usually because the site is not using reliable SMTP, SMTP settings are wrong, the sender address is misaligned, DNS mail authentication is missing, or a plugin conflict is interfering with the mail process.
Why do WordPress test emails send but real emails do not arrive?
Because sending and delivery are different. WordPress may hand off the email successfully, but mailbox providers can still reject, quarantine, or spam-filter it.
Should I use SMTP for WordPress emails?
Yes, for most production sites. SMTP through a real authenticated mail provider is usually more reliable than relying on the default server mail path alone.
Can a plugin stop WordPress from sending emails?
Yes. SMTP plugins, form plugins, security plugins, and custom code can all interfere with how email is triggered or sent.
How do I know if the problem is DNS or WordPress?
If WordPress hands off the message successfully but it does not arrive, DNS and deliverability are strong suspects. If WordPress cannot send at all, the problem is more likely in SMTP settings, plugin conflicts, or server restrictions.
Final Thoughts
WordPress not sending emails is usually not one problem. It is either a sending problem, a plugin-trigger problem, or a deliverability problem. You solve it faster when you separate those clearly from the start.
Begin with a test email. Then check whether the message fails to send or only fails to arrive. After that, move through SMTP settings, sender alignment, DNS authentication, plugin conflicts, and logs in that order. That is the fastest path to a real fix.