Severity: Major · Fix time: 15–60 min · Skill level: Intermediate
WordPress not sending email is a condition where WordPress fails to deliver email notifications — including password resets, contact form submissions, WooCommerce order confirmations, and new user registrations — with no visible error. The emails appear to send from within WordPress, but they never arrive. This silent failure stems from how WordPress sends email by default: using PHP’s mail() function without any authentication, which most modern email servers reject as potential spam.
This is one of the most common WordPress issues for business sites. An online store that silently drops order confirmations, or a contact form that never delivers leads, has a business problem — not just a technical one. The fix is switching WordPress to send email through a properly authenticated SMTP connection.
Need a quick map of every WordPress error? See our 70+ WordPress Errors Guide → for a categorized reference of every common WordPress issue.
How WordPress Email Works (and Why It Fails)
WordPress uses a function called wp_mail() to send all email. By default, wp_mail() calls PHP’s built-in mail() function, which asks the hosting server to send email directly. This method has a critical weakness: it sends with no authentication, no proper “from” identity, and no DKIM or SPF signature — all signals that spam filters use to identify and reject suspicious email.
Modern email delivery requires authentication. Gmail, Outlook, and corporate email servers increasingly reject or silently drop unauthenticated mail() messages. The email leaves WordPress, but it never arrives because the receiving server discards it before it reaches the inbox.
Common causes and contributing factors include:
- PHP mail() disabled on the host — Many managed WordPress hosting providers disable PHP’s
mail()function entirely to prevent spam and server abuse.wp_mail()fails silently. - No SPF/DKIM records — Without these DNS authentication records configured for your domain, emails are flagged as unauthenticated by receiving servers.
- Mismatched “from” email — If WordPress sends from
[email protected]but your domain’s email is hosted elsewhere with no SPF record covering the server, the email fails authentication checks. - Shared hosting IP reputation — On shared hosting, your site shares an IP with dozens or hundreds of other sites. If one of those sites sends spam, the entire IP’s reputation degrades, causing all emails from that IP to be filtered.
- Missing or incorrect admin email — If the admin email in Settings → General is incorrect, password reset emails, recovery mode notifications, and admin alerts go to the wrong address.
Check This First — 2-Minute Diagnostic
- Check your spam folder — Before assuming emails aren’t sending, check the spam/junk folder of the destination address. Email may be sending but landing in spam.
- Verify the admin email — Go to Settings → General and confirm the admin email address is correct and accessible.
- Send a test email — Install the free “WP Mail SMTP” plugin and use its built-in email test feature to send a test message and see if it delivers.
- Check your hosting control panel — Some hosts provide an email log or mail queue viewer that shows whether outgoing email is being attempted.
- Check for PHP mail() restrictions — Ask your host whether PHP’s
mail()function is enabled. Many managed WordPress hosts disable it by design.
Purpose & Benefits
1. Email Is a Core Business Function for WordPress Sites
Contact form submissions, order notifications, password resets, and admin alerts all depend on WordPress email delivery. Silent email failure means lost leads, confused customers who never received order confirmations, and users locked out waiting for reset emails that never arrive. SMTP configuration restores reliable delivery for all of these.
2. SMTP Authentication Improves Deliverability
Emails sent via authenticated SMTP include DKIM, SPF, and DMARC headers that prove legitimacy to receiving servers. Unauthenticated PHP mail commonly sees 30–50% failure rates; properly configured SMTP via SendGrid, Brevo, or Gmail achieves 95%+ delivery. Reliable email delivery is foundational to any email marketing or transactional notification strategy.
3. Dedicated Email Services Provide Delivery Visibility
SMTP plugins like WP Mail SMTP integrate with transactional services (SendGrid, Mailgun, Postmark, Brevo) that show delivery status, bounce rates, and failures. You move from guessing whether emails are sending to complete visibility into every email your site generates.
Examples
1. Installing WP Mail SMTP and Connecting to Gmail SMTP
The most common fix for small business WordPress sites is installing WP Mail SMTP and routing emails through a Gmail or Google Workspace account:
- Install and activate WP Mail SMTP from the WordPress plugin directory.
- Go to WP Mail SMTP → Settings.
- Set “From Email” to your address and “From Name” to your site name.
- Under Mailer, select “Google / Gmail” for OAuth or “Other SMTP” for manual setup.
- Enter Gmail SMTP details: Host
smtp.gmail.com, Encryption TLS, Port 587, and your Gmail App Password (generate one at Google Account → Security → App Passwords). - Save and use the Email Test tab to confirm delivery.
2. Using a Transactional Email Service for High Volume
For WooCommerce stores with significant order email volume, a dedicated transactional service is more reliable than Gmail:
- Create a free account with SendLayer, Brevo, or Postmark.
- Verify your sending domain to add DKIM and SPF records automatically.
- In WP Mail SMTP, select the mailer and enter your API key.
// If you prefer code-based SMTP configuration in wp-config.php
// (less flexible than the plugin but works for simple setups)
// Note: Most sites should use a plugin instead
define( 'WPMS_ON', true );
define( 'WPMS_SMTP_HOST', 'smtp.sendlayer.com' );
define( 'WPMS_SMTP_PORT', 587 );
define( 'WPMS_SSL', 'tls' );
define( 'WPMS_SMTP_AUTH', true );
define( 'WPMS_SMTP_USER', 'your-username' );
define( 'WPMS_SMTP_PASS', 'your-password' );3. Debugging with WP_DEBUG to Identify Errors
If WP Mail SMTP’s email test fails, enable debug logging to capture the specific SMTP error:
// Temporary debug logging — disable after troubleshooting
define('WP_DEBUG', true);
define('WP_DEBUG_LOG', true);
define('WP_DEBUG_DISPLAY', false);Check wp-content/debug.log after a failed test. Authentication errors, connection refusals, and wrong port errors all appear there.
Common Mistakes to Avoid
- Checking if emails “sent” in WordPress without verifying delivery — WordPress’s
wp_mail()function returnstrueif the email was handed off to PHP’smail()— not if it was delivered. A “sent” status in WordPress means nothing without confirming actual inbox delivery. - Using a Gmail account without an App Password — Standard Gmail credentials don’t work with third-party SMTP connections. Google requires you to create an “App Password” specifically for non-Google apps. Using your regular password will fail with an authentication error.
- Sending from a “from” email not matching your domain — If your site is
yourcompany.combut you send email from[email protected], the mismatch looks suspicious to spam filters. Send from an email address on your own domain. - Not testing after configuration — Always use WP Mail SMTP’s built-in “Email Test” after setup to confirm delivery before relying on it for transactional notifications.
Best Practices
1. Install WP Mail SMTP and Configure a Proper Mailer
WP Mail SMTP is the standard plugin for this problem, with over 3 million active installations. Install it, connect a mailer (Google/Gmail, Brevo, SendGrid, Postmark, or SMTP), run the email test, and enable logging. This single step transforms WordPress email reliability from unpredictable to consistently high.
2. Set SPF and DKIM Records for Your Sending Domain
Confirm your domain has SPF and DKIM DNS records. These authenticate that emails from your domain are legitimate. Your email provider (Google Workspace, Microsoft 365, etc.) provides the specific records to add via your domain registrar. Without SPF/DKIM, even properly configured SMTP can land in spam.
3. Test Every Email Type After Configuration
After setting up SMTP, test each email type your site sends: contact form submissions, WooCommerce order confirmations, password resets, and new user registrations. Some plugins have their own email settings that override the global SMTP configuration. WooCommerce manages its emails under WooCommerce → Settings → Emails — check there separately.
Frequently Asked Questions
What causes WordPress not sending email most often?
The root cause is almost always PHP’s mail() function being blocked or not authenticated. Modern email servers increasingly reject unauthenticated PHP mail as potential spam. Most managed WordPress hosts disable mail() entirely. The fix — using a properly authenticated SMTP connection via a plugin like WP Mail SMTP — resolves the issue in over 95% of cases.
How do I fix WordPress not sending email when locked out of wp-admin?
WordPress not sending email doesn’t typically lock you out of wp-admin. Install WP Mail SMTP and configure it. If you’re locked out for a separate reason and the password reset email isn’t arriving, reset your password directly in the database via phpMyAdmin: find your user in wp_users, update the user_pass field with a new MD5-hashed password.
Can WordPress not sending email hurt my SEO?
Not directly. Email delivery doesn’t affect search rankings. However, lost contact form leads, failed WooCommerce order notifications, and missed admin security alerts represent real business harm. If customers don’t receive order confirmations, they may dispute charges or lose trust in your brand — which affects your business results even if not your search rankings specifically.
Does WP Mail SMTP cost money?
WP Mail SMTP has a free version that supports most common mailers (SMTP.com, SendLayer, Brevo, Mailgun, Postmark, Google, and generic SMTP). The paid “Pro” version adds features like email logging, notification alerts, smart routing, and priority support. For most business WordPress sites, the free version is sufficient to resolve email delivery issues entirely.
What transactional email service should I use with WordPress?
For small businesses, Gmail or Google Workspace is the easiest setup. For eCommerce stores with significant email volume, dedicated transactional services like SendLayer, Brevo, Postmark, or Mailgun provide better reliability and delivery analytics. All integrate with WP Mail SMTP’s free tier.
Related Glossary Terms
- DNS (Domain Name System)
- WordPress Login Redirect Loop
- phpMyAdmin
- 500 Internal Server Error
- wp-config
- WooCommerce
- Debug Mode (WP_DEBUG)
- WordPress Hosting
How CyberOptik Can Help
Still broken? Our team fixes WordPress errors like this in under 30 minutes for maintenance clients. Silent email failure is particularly damaging because you don’t know how long it’s been happening — how many leads never arrived, how many customers never received their order confirmation. Our WordPress maintenance clients get SMTP configuration as part of their setup, with email logging enabled so nothing goes missing silently. Contact us to discuss your site or explore our WordPress support services.

