[SOLVED] How to Fix WordPress Not Sending Email Issue

Email is the backbone of your WordPress website.

Every critical action — contact form messages, password reset emails, WooCommerce order confirmations, membership notifications, new comments, lead alerts — depends on whether your site can send emails reliably.

But here’s the harsh reality:

  • WordPress is not designed to send emails dependably
  • Shared hosting isn’t optimized for transactional email delivery
  • Modern mail providers reject unauthenticated emails immediately

That’s why the “WordPress Not Sending Email” issue is one of the most common and most painful problems faced by bloggers, business owners, and ecommerce store owners.

The good news?

You can fix it completely — and this guide will walk you through EVERY possible reason, EVERY practical fix, and ultimately the most reliable, permanent solution: Gmail SMTP using WP Mail SMTP.

Let’s dive deep.

Why WordPress Fails to Send Emails — Deep Technical Breakdown


To fix the issue the right way, you must understand what is actually failing behind the scenes.
Here are the REAL reasons WordPress email fails:

1. Hosting Blocks the PHP mail() Function

WordPress uses the native:

  • wp_mail() → depends on
  • PHP mail() → depends on
  • your server’s mail configuration

But shared hosts often:

  • Block PHP mail to prevent spam
  • Rate-limit outgoing mail
  • Use blacklisted/shared IPs
  • Place restrictions on email frequency

Result:
Your emails never leave the server OR get rejected before reaching the recipient.

2. Emails Fail Authentication (SPF, DKIM, DMARC Missing)

Modern email providers (Gmail, Outlook, Yahoo) use strict authentication.

If your emails are missing:

  • SPF – checks who can send email from your domain
  • DKIM – verifies the message wasn’t modified
  • DMARC – enforces policy and prevents spoofing

Then your emails are considered:

  • Suspicious
  • Spam
  • Fraud
  • Completely rejected

This is one of the TOP reasons for email disappearance.

3. Emails Are Being Sent — But Going to SPAM

Sometimes WordPress is sending, but the email gets buried in spam filters because:

  • You’re using a free Gmail/Yahoo address in “From Email”
  • Your domain has no authentication
  • Message headers look suspicious
  • The server IP has a poor reputation
  • Your “From Name” is too generic

Gmail especially is extremely strict — ANY unverified email lands in spam instantly.

4. Plugin Conflicts Break wp_mail()

Some plugins override or modify the email sending process.

Common problem creators:

  • Email customizer plugins
  • Form plugins
  • Membership plugins
  • SMTP plugins with misconfiguration
  • Security plugins that filter outgoing email

A single plugin can break email sending for your entire site.

5. Incorrect Contact Form Email Settings

This is an overlooked issue — especially for:

  • Contact Form 7
  • Elementor Forms
  • WPForms
  • Fluent Forms
  • Gravity Forms

Common mistakes:

  • Using a Gmail/Yahoo address as From Email
  • Setting From and To fields to the same address
  • Using invalid headers
  • Using a non-domain email

These mistakes look like spam and get rejected immediately.

6. SMTP Ports Are Blocked by Hosting

Email servers use:

  • Port 587 (TLS)
  • Port 465 (SSL)

Cheap hosting companies often block these ports to prevent abuse.

If SMTP can’t connect → email instantly fails.

How to Fix “WordPress Not Sending Email” — Deep Troubleshooting Guide


We will start with all non-SMTP solutions first.

If nothing works → you move to SMTP (which is the guaranteed fix).

Method 1: Fix Contact Form Plugin Email Settings (First Step)

This is where most people make mistakes.

NEVER use:
  • user@gmail.com
  • info@yahoo.com
  • abc@hotmail.com

as your From Email.

These are marked as spoofed emails and rejected.

Best Practice (Strongly Recommended)

Use:

From Email:

noreply@yourdomain.com

or

info@yourdomain.com (Google Workspace)

From Name:

Your Website / Brand Name

Also ensure:

  • “Reply-To” is set to the user’s email
  • Avoid same From/To email
  • Remove invalid headers

After correcting these, send a test email.

If it still doesn’t work → go to Method 2.


Method 2: Test Whether Hosting Supports PHP mail()

Before going deep — check whether your hosting even allows email sending.

Install the plugin: Check & Log Email – Easy Email Testing & Mail logging

Go to:

Tools → Check Email → Send Test Email

Possible Results:

Test email reaches your inbox

→ WordPress CAN send emails → issue is with your form settings

Go back to Method 1.

Email goes to spam

→ Authentication problem → fix SPF/DKIM (Method 3)

Email never arrives

→ Your hosting doesn’t support PHP mail → go directly to SMTP (Method 7)


Method 3: Add SPF, DKIM & DMARC Authentication (Mandatory for Delivery)

This step is essential if emails are going to spam.

Add SPF Record (Domain-Level Validation)

For Google Workspace:

v=spf1 include:_spf.google.com ~all

For cPanel-based hosting:

v=spf1 +a +mx +ip4:YOUR.SERVER.IP ~all

Add DKIM (Verifies Email Integrity)

If you’re using Google Workspace:

  • Google generates a DKIM key
  • Add it as a TXT record in DNS
  • Enable DKIM in Google Admin Console

Add DMARC (Protect Your Domain)

Start with a relaxed policy:

v=DMARC1; p=none; rua=mailto:you@yourdomain.com;

After authentication is active → test again.

If still not fixed → go to Method 4.


Method 4: Check Plugin Conflicts

Steps:

  1. Deactivate all plugins except your form plugin
  2. Send a test email
  3. Reactivate plugins one-by-one

If a plugin breaks email sending → identify & replace it.


Method 5: Fix WooCommerce Email Settings (For Stores)

Go to:

WooCommerce → Settings → Emails

Check:

  • Email notifications enabled
  • Correct recipient email
  • From Email = your domain email
  • Templates not overridden incorrectly

WooCommerce email misconfigurations are extremely common.


Method 6: Check Hosting Firewall & SMTP Port Permissions

Contact hosting support and ask:

“Are outbound SMTP ports 587 and 465 open for my hosting account?”

If they say NO →
SMTP will fail →
Move hosting or use Google Workspace routing.

If YES →
Move to the final, permanent solution.


Method 7 (Final & Guaranteed Fix): Set Up Gmail SMTP Using WP Mail SMTP (OAuth)

This is the most reliable, industry-standard solution.

Why Gmail SMTP?

  • 100% email delivery
  • Google reputation → Not spam
  • Secure OAuth authentication (no passwords)
  • Free for normal usage
  • Works on ALL WordPress hosts
  • Completely bypasses PHP mail()

Let’s set it up… step-by-step, professionally.

Complete Step-by-Step Setup: Gmail SMTP with WP Mail SMTP

This is THE most detailed Gmail SMTP setup guide available.

STEP 1: Install and Activate WP Mail SMTP

  1. Go to Plugins → Add New
  2. Search for WP Mail SMTP
  3. Click Install and then Activate
WP Mail SMTP - How to Fix WordPress Not Sending Email Issue

Plugin Link: https://wordpress.org/plugins/wp-mail-smtp/

Once activated, open:
WP Mail SMTP → Settings → Mailer

Select Gmail / Google Workspace.

WP Mail SMTP Mailer - How to Fix WordPress Not Sending Email Issue

You will return to this page later.

Step 2: Create a Web App in Google Cloud Console

Open a new browser tab and go to: https://console.cloud.google.com/

If this is your first time:

  • Select your country
  • Accept Google Cloud Terms
  • Click Agree & Continue
Google Cloud Platform - How to Fix WordPress Not Sending Email Issue

Step 3: Create (or Select) a Google Cloud Project

  1. Click the Project dropdown at the top
  2. Choose an existing project or click New Project
  3. Enter a Project Name (anything you like, e.g., WP SMTP Email App)
  4. Click Create
New Project - How to Fix WordPress Not Sending Email Issue

Once created, ensure the project is active.

Step 4: Enable the Gmail API

  1. In the left sidebar, click APIs & Services → Library
  2. Search for Gmail API
  3. Click Gmail API
  4. Click Enable
Gmail API - How to Fix WordPress Not Sending Email Issue

This activates Gmail email-sending capability for your project.

Step 5: Configure Your App in Google Auth Platform

In this step, you will define your app’s basic details, audience, and contact information. These settings allow Google to recognize your app when WP Mail SMTP requests email-sending permissions.

Follow the guided configuration:

5.1 App Information
  1. Navigate to Google Auth Platform → Branding.
  2. Enter the following required details:
    • App Name (e.g., WP SMTP Email App)
    • User Support Email
  3. Click Next.
Crete Branding - How to Fix WordPress Not Sending Email Issue
5.2 Audience

You will see two options for your app’s audience:

  • Internal – Only for users within your organization (Google Workspace accounts). Does not require verification.
  • External – Available to any Google account. Starts in testing mode; only users added as test users can access it. Verification may be required when moving to production.

For personal Gmail accounts or outside your organization, select: External
Click Next.

5.3 Contact Information
  1. Enter your Developer Contact Email (the Gmail account used for sending).
  2. Other fields such as website or domain are optional for personal Gmail accounts.
  3. Click Next.
5.4 Finish

Review the summary and click Create to complete the configuration.

Step 6: Create OAuth Client Credentials

After completing your OAuth configuration, you’ll see the OAuth Overview screen.

6.1 Create OAuth Client

Click the Create OAuth client button on this page.

Create OAuth Client - How to Fix WordPress Not Sending Email Issue
6.2: Configure OAuth Client

After clicking on the Create OAuth client you’ll see the screen like below

  1. In the popup, select Web Application as the application type.
  2. Enter a name for the client (e.g., WP SMTP Web Client).
  3. Scroll down to Authorized redirect URIs. Click Add URI and enter:
    https://connect.wpmailsmtp.com/google/
  4. Click Create.

You will then see your Client ID and Client Secret — copy these for use in WP Mail SMTP.

OAuth Client Created - How to Fix WordPress Not Sending Email Issue

Step 7: Add Test User

  1. Navigate to Google Auth Platform → Audience.
  2. In the Test Users section, click Add User.
  3. Enter the Gmail address you will use for sending emails.
  4. Save your changes.
Audience - How to Fix WordPress Not Sending Email Issue

Note: Test users can access the app while it is in testing mode.

Step 8: Enter Credentials in WP Mail SMTP

  1. Go back to WordPress → WP Mail SMTP → Settings
  2. Paste:
    • Client ID
    • Client Secret
  3. Click Save Settings
Enter Credentials  in WP Mail SMTP

Step 9: Authorize WP Mail SMTP

Click Allow plugin to send emails using your Google account.

Authorize WP Mail SMTP
  1. Sign in with your Gmail account
  2. Click Allow
  3. If Google shows a warning:
    • Click Advanced
    • Click Go to app (unsafe)
  4. Grant access

WP Mail SMTP will confirm the connection is successful.

Step 10: Send a Test Email

  • Go to WP Mail SMTP → Tools → Email Test
  • Enter any email address you can access
  • Click Send Email
Send a Test Email

You should see:

“Test email sent successfully!”


Setup Complete

Your WordPress website is now fully connected to Gmail SMTP using the latest Google Auth Platform (Dec 2025).

This ensures:

  • 100% reliable email delivery
  • No emails going to spam
  • Full Gmail API-based sending (not outdated SMTP password method)
  • Proper authentication via OAuth

Final Verdict

These are the most effective solutions to fix the “WordPress Not Sending Email” issue. In most cases, simple checks—like correcting your form settings, verifying hosting limits, reviewing DNS records, or clearing plugin conflicts—can quickly restore your email functionality.

But if those steps don’t solve it, switching to SMTP with Gmail using the WP Mail SMTP plugin is the most reliable and long-term fix. It ensures every email your site sends—contact forms, order updates, password resets, and admin alerts—actually reaches the inbox.

With these methods, you now have a complete and proven roadmap to diagnose the issue and permanently resolve WordPress email delivery problems.

Share your love
Rupesh Hingu
Rupesh Hingu
Articles: 27