Skip to main content

Email Deliverability

WordPress Not Sending Email? Here's the SMTP Fix

Contact form submissions vanish, password resets never arrive, and order confirmations go missing, almost always because WordPress is relying on a PHP mail function most servers were never built to deliver reliably.

24/7

Human support for email delivery issues

Free

SSL included for secure SMTP connections

99.9%

Network uptime for reliable sending

30-Day

Money-back guarantee

In short

WordPress not sending email is usually caused by the default wp_mail() function relying on PHP's built-in mail(), which many servers block or mark as spam because it doesn't authenticate the sending domain. The fix is installing an SMTP plugin, connecting it to a real email account or transactional email service with proper authentication, and sending a test email to confirm delivery.

A contact form that submits successfully but never delivers an email, or a 'lost your password?' link that never shows up in an inbox, is one of the most common WordPress problems, and it rarely has anything to do with the plugin sending the message. It's almost always the delivery method underneath it.

By default, WordPress hands outgoing mail to PHP's mail() function, which just drops the message onto the server's local mail queue without any authentication proving the domain actually sent it. Spam filters increasingly reject or silently discard mail sent this way, which is why switching to SMTP, a proper authenticated delivery method, fixes the problem for good rather than just for one message.

Why the Default PHP Mail Function Fails

PHP's mail() function sends a message without any of the authentication records receiving mail servers now expect, such as SPF, DKIM, or a matching return path. Gmail, Outlook, and most spam filters treat unauthenticated mail from a web server as a strong spam signal, and either bounce it or file it straight into a junk folder no one checks.

This is why the problem often looks inconsistent: a contact form might appear to work because WordPress reports the message as 'sent', while the actual email never reaches an inbox because it was silently rejected somewhere between the server and the recipient's mail provider.

Setting Up an SMTP Plugin

An SMTP plugin replaces wp_mail()'s reliance on PHP's mail() with a proper authenticated connection to an email provider, whether that's a Gmail or Microsoft 365 account, or a transactional email service built for this purpose. After installing the plugin, its setup wizard asks for the SMTP host, port, and login credentials for the sending account.

Using an app password rather than a regular account password is standard for Gmail and Outlook connections, since both providers block plain password logins from third-party apps by default. The plugin typically walks through generating one during setup, and it only needs to be entered once.

Choosing Between a Personal Inbox and a Transactional Service

Connecting to a personal Gmail or Microsoft 365 account works well for low-volume sites, contact forms, and internal notifications, and it's the fastest option to set up since most site owners already have one of those accounts. Daily sending limits on personal accounts, though, mean a busier site risks hitting a cap during a traffic spike.

A transactional email service built specifically for automated mail, separate from a regular inbox, handles higher volume more reliably and often includes delivery analytics showing exactly which emails bounced or were opened. Stores sending order confirmations and receipts benefit most from this option, since a missed receipt email is a direct hit to customer trust.

Testing and Confirming Delivery

Every SMTP plugin includes a built-in test email feature, and sending one to a personal address immediately after setup confirms the connection is authenticated correctly before relying on it for real form submissions or password resets. If the test fails, the error message usually points to the exact host, port, or credential mismatch.

Once the test succeeds, trigger a real password reset and submit the site's actual contact form to confirm both arrive, and check the spam folder the first few times even after SMTP is working, since a brand-new sending domain sometimes needs a few clean sends before spam filters fully trust it.

How to Fix WordPress Not Sending Emails (SMTP)

A Server That Doesn't Fight Your Outgoing Mail

Some hosting environments throttle or block outgoing mail ports entirely, which turns an SMTP setup that should take ten minutes into a dead end no plugin can fix. A server that allows standard SMTP ports and includes free SSL for the encrypted connection SMTP requires removes that obstacle before it starts.

24/7 human support means a stuck SMTP connection, an unclear error code, or a question about which port to use gets answered by a person rather than a generic help article.

  • Server configuration that allows outgoing SMTP connections
  • Free auto-renewing SSL for encrypted SMTP authentication
  • 24/7 human support for email delivery troubleshooting
  • cPanel-style panel with straightforward one-click plugin installs

Why Hosting Cheap

What you get

24/7 Human Support

Get help diagnosing an SMTP connection error or a message stuck in a spam filter from a real person.

Free Auto-Renewing SSL

Encrypts the authenticated SMTP connection required by Gmail, Outlook, and most transactional email services.

99.9% Uptime

A stable, consistently available server means outgoing mail queues don't stall because the host itself went down.

cPanel-Style Panel

Install and configure an SMTP plugin through a familiar one-click interface without command-line work.

Daily Backups

Plugin settings, including SMTP configuration, are covered by daily backups in case a change needs undoing.

30-Day Money-Back Guarantee

Confirm email delivery works exactly as expected before committing long-term.

How It Works

Get set up in a few steps

1

Install an SMTP plugin

Add a plugin built to route wp_mail() through an authenticated SMTP connection instead of PHP's mail().

2

Connect a sending account or service

Enter the SMTP host, port, and an app password for a personal inbox, or credentials for a transactional email service.

3

Send a test email and confirm delivery

Use the plugin's test feature, then trigger a real password reset and contact form submission to check both arrive.

Included

Everything you need, on every plan

  • Confirm the site is currently relying on PHP's default mail() function
  • Install a reputable SMTP plugin
  • Generate an app password for Gmail or Microsoft 365, don't use the main account password
  • Enter the correct SMTP host and port for the chosen provider
  • Send a built-in test email before relying on real form submissions
  • Trigger a real password reset to confirm delivery end-to-end
  • Check spam folders for the first few sends on a new domain
  • Consider a transactional email service if sending order or receipt emails

FAQ

Frequently asked questions

Why does WordPress say an email was 'sent' when it never arrives?

WordPress reports success as soon as PHP's mail() function accepts the message locally, not once it's actually delivered. If the message fails authentication checks further down the line, it can bounce or be discarded with no error ever reaching WordPress.

Is SMTP the same as just adding an SMTP plugin?

The plugin is the tool that lets WordPress talk to an SMTP server, but it still needs to be connected to an actual email account or service with valid credentials before it does anything. Installing the plugin alone doesn't fix delivery.

Can I use my regular Gmail password for SMTP setup?

No. Gmail and most other providers block plain password logins from third-party apps and require an app-specific password generated separately in the account's security settings.

How many emails can I send through a personal Gmail account?

Personal Gmail accounts have a daily sending cap that's easy to hit on a busy contact form or a store sending order confirmations. A transactional email service is built for higher, steadier volume.

Will switching to SMTP stop emails from going to spam?

It removes the biggest cause, since SMTP authenticates the sending domain properly. Deliverability can still depend on the sending domain's reputation, so a brand-new domain may need a few clean sends before filters fully trust it.

Do WooCommerce order emails have the same problem?

Yes. WooCommerce relies on the same wp_mail() function under the hood, so order confirmations and receipts fail to deliver for the same reason contact forms do, and the same SMTP fix resolves both at once.

Get Email Delivery That Actually Works

Host somewhere that allows SMTP connections cleanly, with 24/7 support if delivery ever needs troubleshooting.

Get Started