DEV Community

Cover image for WordPress Not Sending Emails? Why It Happens and How to Fix It
Lavkush kumar
Lavkush kumar

Posted on Originally published at codingcush.com

WordPress Not Sending Emails? Why It Happens and How to Fix It

Originally published on CodingCush.

If WordPress is not sending emails — password resets, contact form messages, order confirmations — the most common reason is that WordPress sends mail the old, unauthenticated way, and modern inbox providers like Gmail and Outlook quietly distrust it. WordPress uses PHP's basic mail function, which often sends from a fake-looking address without proving your website is allowed to send for your domain, so messages get blocked or dumped in spam. The reliable fix is to send through a proper SMTP service instead: install an SMTP plugin, connect it to a real mailbox or a sending service like Brevo, SendGrid or your hosting mail, and add SPF, DKIM and DMARC records to your domain so inboxes trust you. After that, test every important form again.

Email problems are sneaky. Your website looks perfectly healthy, visitors fill in your form, press Send, see “Thank you!” — and you receive absolutely nothing. No error, no warning, just silence. Let us find out where those emails are going, and bring them back.

How WordPress Sends Email (and Why It Fails)

By default, WordPress sends email through a PHP function called wp_mail(), which hands the message to your server and hopes for the best. The official developer reference for wp_mail() shows what the function does — and, by reading carefully, what it does not do: it does not log in to a real mailbox, it does not prove your identity, and it often claims to send from an address like wordpress@yourdomain.com that may not even exist. It is like posting a letter with no return address and a handwritten envelope. Sometimes it arrives. Often it does not.

Three failure patterns cover almost every case. One: the server never sends the message at all, because the hosting has disabled PHP mail or the function crashes. Two: the message is sent but lands in spam, because the receiving inbox does not trust it. Three: the message is rejected completely, because your domain has no permission records saying this server may send mail for you. The fixes below attack all three.

Step 1: First, Check Whether WordPress Sends Anything at All

Do not guess — test. The quickest test is the password reset: log out, click “Lost your password?”, and request a reset for your own admin email. If that email arrives, WordPress can send mail, and your problem is narrower — probably one form or one plugin. If nothing arrives (check spam and promotions tabs too, we will wait), core sending is broken and you need the SMTP fix below.

Free test plugins such as WP Mail Logging or Check & Log Email make this clearer: they record every email WordPress tries to send, so you can see whether your contact form even asked WordPress to send anything. That one distinction — “WordPress never tried” versus “WordPress tried and the inbox refused” — decides which fix you need, and saves an afternoon of random plugin-hopping.

Step 2: Send Through SMTP Instead of PHP Mail

SMTP is the proper, authenticated way to send email: your site logs in to a real mail server with a username and password, and sends like a normal email account would. This is the single most effective fix, and it is the same approach used when sending mail from code — our complete guide to sending emails in PHP using PHPMailer explains the SMTP idea in detail, with settings you can copy.

In WordPress, you do not need code. Install a popular SMTP plugin such as WP Mail SMTP or FluentSMTP, then connect one of these sending options:

Sending option Good for Watch out for
Your hosting mailbox Small sites, low volume Hosting mail limits and weak deliverability
Brevo, SendGrid, Mailgun, Amazon SES Most sites — reliable and cheap or free at low volume Needs domain verification and DNS records
Gmail / Google Workspace via OAuth Sending from your own Gmail address Daily sending limits; use the plugin's secure setup, not your password

Typical settings, if your plugin asks for them manually, look like this:

SMTP Host: smtp.your-provider.com
Port: 587 (TLS) or 465 (SSL)
Username: your full email address
Password: the mailbox or app password
From Email: you@yourdomain.com — must match the account
Enter fullscreen mode Exit fullscreen mode

That last line matters more than people expect. If WordPress claims to send from hello@yourdomain.com but logs in as a completely different address, inboxes smell something fishy — because, honestly, it is fishy.

WordPress developer reference page for the wp_mail function — a real screenshot showing how WordPress sends email by default

The official wp_mail() developer reference — WordPress's built-in mail function, and the starting point for every email problem.

Step 3: Add SPF, DKIM and DMARC Records

These three DNS records are your domain's identity papers for email. SPF says which servers are allowed to send for your domain. DKIM adds a digital signature proving the message was not changed on the way. DMARC tells inboxes what to do with messages that fail the first two checks. Google's own guide to setting up SPF, DKIM and DMARC explains each record in plain steps, and your sending service will give you the exact values to paste into your domain's DNS settings.

Most SMTP services show these records during setup, labelled something like “verify your domain”. Do not skip that page because the test email arrived. A message can reach your own inbox today and still land in your customers' spam tomorrow. Verification is what makes delivery consistent. DNS changes can take a few hours to spread, so set the records, have a cup of tea, then run the service's check again.

Step 4: Fix the From Name and From Address

Even with perfect SMTP, WordPress sometimes uses a From address that does not exist, like the default wordpress@yourdomain.com. Create that mailbox for real, or set the From address in your SMTP plugin to a real address on your own domain — contact@, hello@, anything genuine. Avoid sending WordPress mail from a free Gmail or Yahoo address while claiming it comes from your website domain; that mismatch is exactly what spam filters are trained to catch.

Also check the admin email under Settings > General. Password resets and important notices go there. If it still points to an old developer's address or a mailbox nobody opens, half of your “missing email” problem is just mail arriving in the wrong house.

Step 5: Check Plugin-Specific Problems

If core emails work but one form stays silent, look inside that form plugin. Common causes: the notification email is set to the wrong address, the notification is disabled, the form sends to the submitter but not to you, or a security or caching plugin blocks the submission. While testing, also rule out the classics from our guide to fixing the critical error in WordPress — a plugin conflict that breaks one feature quietly can break email loudly. Send yourself a test submission after every single change, so you know exactly which change fixed it.

Frequently Asked Questions

Why do WordPress emails go to spam instead of the inbox?

Because unauthenticated PHP mail looks untrustworthy to Gmail and Outlook. Sending through SMTP from your own verified domain, with SPF, DKIM and DMARC set up, fixes most spam-folder problems.

What is the best SMTP plugin for WordPress?

WP Mail SMTP and FluentSMTP are both popular and reliable. The plugin matters less than the sending service behind it — pick a reputable service and verify your domain.

Do I need SMTP if my site only sends password resets?

Yes, honestly. A password reset that lands in spam, or nowhere, locks a real person out of your site. SMTP takes twenty minutes to set up and removes that risk.

Why did emails suddenly stop after moving hosts?

Your new server's mail settings and IP reputation are different, and your SPF record may still list only the old server. Update SPF for the new sending route, or switch to an SMTP service that does not change when you move.

Can I send WordPress email from my Gmail account?

Yes, through an SMTP plugin using Gmail's secure OAuth connection. Use the plugin's official setup rather than typing your Gmail password into a settings box.

Conclusion

WordPress email fails quietly, but it fails for understandable reasons: unauthenticated sending, missing DNS records, and From addresses that do not really exist. Test first, switch to SMTP, verify your domain, and test again. Do it once, properly, and your forms, orders and password resets will arrive like clockwork — which is exactly what email was invented for.

Top comments (0)