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,
- plugin and 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.
Common outcomes:
- the server accepts the send request,
- the message leaves without proper authentication,
- the mailbox provider treats it as suspicious,
- the email never reaches the inbox.
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,
- mailbox provider requiring app passwords or OAuth.
A small mismatch is enough to stop email completely.
3. The From Address Does Not Match the Sending Domain
This causes both sending failures and poor deliverability.
Examples:
- site sends as
gmail.comfrom your server, - site sends as a domain that is not authenticated,
- site uses a fake sender address the SMTP provider rejects.
Even when the message technically sends, mailbox providers often distrust it.
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,
- rewrite or downgrade trust.
This matters even more for WooCommerce, membership sites, and contact forms.
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,
- 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,
- mail accepted locally but never relayed correctly.
In those cases, SMTP through a real mail provider is usually the better route.
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:
- messages land in spam,
- messages are filtered by the recipient server,
- messages are quarantined by Microsoft or Google-side policies,
- messages are rejected because the domain lacks trust.
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.
This is common with:
- contact forms,
- WooCommerce transactional emails,
- membership plugins,
- custom-coded notifications.
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,
- 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
This is one of the most important checks.
- 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.
This step prevents wasted time.
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,
- 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.
If your SMTP provider expects a specific authenticated mailbox, use that one and force it consistently across WordPress mail.
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,
- whether the provider now requires an app password or OAuth.
Small SMTP mistakes are one of the most common causes of total failure.
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,
- 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.
Check with your email provider or SMTP provider for the exact DNS records they require. Then confirm that:
- SPF includes the correct sender,
- DKIM is enabled and valid,
- DMARC exists and aligns with the sender domain.
If these records are wrong, the site may “send” but still fail in the real world.
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,
- form plugins only if you need to isolate the source.
Then retest after each change.
9. Check Plugin-Specific Email Settings
If only one feature fails, inspect that plugin’s own email settings.
For example:
- WooCommerce email notifications,
- contact form recipient fields,
- membership plugin email templates,
- notification toggles that were disabled by accident.
Sometimes WordPress mail works, but the plugin is not actually triggering the email.
10. Check Logs for Real Errors
If you need hard evidence, use logs.
Look at:
- WordPress debug log,
- SMTP plugin logs,
- PHP error log,
- hosting mail log if available,
- 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.
For example, test:
- sending from the same mailbox directly through webmail,
- SMTP credentials in another client,
- server DNS records independently.
If the mailbox itself cannot send reliably, WordPress is not the core issue.
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,
- limits email volume on shared hosting.
If so, the SMTP plugin may be configured correctly but still unable to connect.
13. Enable Debug Logging Safely
If the issue is stubborn, enable WordPress debug logging briefly.
A typical safe setup in wp-config.php is:
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.
14. Use the wp_mail Failed Hook for Deeper Diagnosis
If you have a developer available, WordPress provides a way to capture mail failures programmatically.
This is useful when:
- the problem is intermittent,
- plugin logs are unclear,
- you want the exact WP error data from failed mail attempts.
That gives you far better evidence than relying on guesswork.
Advanced Troubleshooting
Separate “Send” Problems from “Inbox” Problems
This is the biggest mistake site owners make.
A test tool may report success because WordPress handed the message to the mailer correctly. That still does not prove inbox delivery.
So always ask:
- Did WordPress hand off the email?
- Did the SMTP provider accept it?
- Did the recipient mailbox provider trust it?
These are three different checkpoints.
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.
If password resets fail but admin test emails work, user-triggered flows need closer inspection.
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,
- PHP version change.
WordPress email issues often begin right after one of those changes.
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,
- some messages never reach the configured SMTP mailer,
- multiple plugins try to manage email delivery.
Watch for HTML Content-Type and Header Issues
If only formatted emails fail or display badly, check custom email headers and content type changes.
This matters when:
- plugins alter content type globally,
- custom code adds bad headers,
- multipart messages are malformed,
- attachments or HTML formatting behave unpredictably.
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.
The best prevention is simple: use a real authenticated mail path and test it regularly instead of waiting for customers to tell you their emails never arrived.
When to Contact Support
Contact your hosting provider if:
- outbound SMTP connections may be blocked,
- mail used to work before a server change,
- you need access to server mail logs,
- PHP mail or firewall restrictions may be involved.
Contact your SMTP or mailbox provider if:
- credentials look correct but auth still fails,
- the provider requires app passwords or OAuth,
- messages are being rejected or quarantined,
- DNS records are unclear.
Focus on WordPress-level troubleshooting if:
- only certain plugin emails fail,
- logs point to
wp_mail()or plugin conflicts, - 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.