Fix WordPress Email Delivery With SMTP (Step by Step)
WordPress emails vanish because PHP mail() isn't authenticated. Route them through a real SMTP server—with fallback relays, a delivery log and failure alerts—so they actually arrive.
You build a contact form. Someone fills it in. The email never arrives—or it shows up in spam, or three hours late. Then a customer never gets their password reset, and you find out weeks later. Silent email failure is one of the most common WordPress problems I get called about, and the cause is almost always the same, boring, fixable thing. Here’s why it happens and how to fix it for good in about five minutes.
The essentials
- WordPress’s default
mail()is unauthenticated, so Gmail, Outlook and Yahoo treat it as spam. - Since February 2024, Google and Yahoo require SPF and DKIM from senders—unauthenticated mail effectively can’t reach them.
- The SMTP Mailer has presets for 12+ providers (Brevo, SendGrid, Mailgun, Amazon SES, Postmark, Gmail, Outlook, Zoho and more)—pick one and host/port/encryption fill in.
- Its standout feature is fallback relays in priority order: if the primary provider fails, the next takes over automatically.
- It logs every send, lets you test each relay, imports from WP Mail SMTP / Post SMTP / Easy WP SMTP, and can alert you by email or webhook on failure.
Why do WordPress emails fail by default?
WordPress sends mail through PHP’s mail() function, which fires messages directly from your web server with no authentication. There’s no SPF record vouching that your server may send for your domain, no DKIM signature proving the message wasn’t tampered with, and no established sending reputation behind the IP.
To inbox providers, that profile is indistinguishable from spam—because that’s how most spam is actually sent. So your legitimate password resets and contact-form notifications get filtered, delayed, or dropped without a bounce.
It got stricter recently. Since February 2024, Google and Yahoo require bulk senders to authenticate with SPF and DKIM. An unauthenticated WordPress site isn’t just likely to land in spam anymore—for Gmail and Yahoo recipients, it can fail to deliver entirely. Authenticated SMTP isn’t a nice-to-have; it’s the baseline.
Most delivery problems trace back to one of a handful of causes—here’s how each maps to the fix:
| Symptom | Cause | Fix |
|---|---|---|
| Emails never arrive, or land in spam | PHP mail() is unauthenticated—no SPF, DKIM or reputation | Route mail through an authenticated SMTP server |
| Can’t reach Gmail or Yahoo at all | Since Feb 2024 they require SPF + DKIM from senders | Add the SPF and DKIM records your provider gives you |
| SMTP set up, still going to spam | The From address doesn’t match your authenticated domain | Set Force From Email to an address on that domain |
| Mail dies when the provider is down | A single relay with no backup | Configure fallback relays in priority order |
How do you configure SMTP in WordPress?
To fix WordPress email delivery, stop relying on PHP’s mail() and route messages through an authenticated SMTP server instead. In Blaminhor Essentials, activate the SMTP Mailer module and work through four short steps: pick a provider preset, add fallback relays, send a test, then turn on the delivery log with failure alerts.
Provider presets fill in the technical settings; you add credentials, test, and watch the log confirm delivery.
Step 1 — Choose a provider
The module ships presets for 12+ providers: Brevo, SendGrid, Mailgun, Amazon SES, Postmark, SparkPost, Mailjet, SMTP2GO, Elastic Email, Gmail / Google Workspace, Outlook / Office 365 and Zoho Mail—plus a custom option for anything else. Pick yours and the host, port and encryption (TLS) are filled in automatically; you just add your credentials (an API key or username/password). If you don’t have a provider yet, a free-tier transactional service like Brevo is a fine place to start.
Step 2 — Add fallback relays
This is what sets the module apart from most SMTP plugins. You can configure several relays in priority order. If the primary one fails—server down, quota reached, authentication rejected—the module automatically retries through the next, with an internal guard so a failing fallback can’t loop back on itself. Your password resets and form notifications still go out even when a provider is having a bad day.
Step 3 — Test it
Send a test email to verify a single relay, or exercise the whole stack to confirm the fallback actually kicks in. The result tells you which relay handled the message and the exact server response—so “did that send?” stops being a guess.
Step 4 — Monitor delivery
Turn on the email log and every message is recorded: subject, recipient, status, which relay sent it, and timestamp. Logs auto-purge after a retention window (30 days by default), and you can optionally log message content for deeper debugging. When a send fails, enable failure alerts to be notified by email or webhook immediately—so you catch a delivery outage in minutes, not when a customer complains.
Migrating from another SMTP plugin?
You don’t have to re-enter anything. If you already run WP Mail SMTP, Post SMTP or Easy WP SMTP, the module’s import reads their existing configuration and copies it over, so switching is a one-click move rather than a re-setup.
Which other options are worth knowing?
- Force From Email / Force From Name — enforce a consistent sender across every plugin that sends mail, so nothing slips out with a mismatched address.
- Return-Path — set where bounce notifications go.
- Disable SSL verification — for local development with self-signed certificates only; never on production.
The result
Emails that arrive—in the inbox, not in spam, and not three hours late. And if one provider stumbles, a fallback relay quietly picks up the slack while an alert tells you what happened. It’s five minutes of setup against weeks of silent, invisible failures.
While you’re tidying up WordPress email, it’s worth stopping the automatic notifications you don’t want so only the mail that matters goes out.
SMTP Mailer is one of the 20+ tools in Blaminhor Essentials—free and open-source on WordPress.org.
– blaminhor
FAQ
Do I need SPF and DKIM records for WordPress email?
Yes. Since February 2024, Google and Yahoo require bulk senders to authenticate with SPF and DKIM, so an unauthenticated site effectively can't deliver to Gmail or Yahoo addresses. A reputable SMTP provider gives you the records to add to your domain's DNS, which is what makes delivery reliable.
Can I use my Gmail account to send WordPress emails via SMTP?
Yes. You can route WordPress mail through Gmail or Google Workspace using their SMTP server, and the SMTP Mailer module ships a Gmail preset for exactly that. It works well at low volume, but Google enforces daily send caps, so for a busier site a dedicated transactional provider is the steadier choice.
Which is the best free SMTP provider for WordPress?
Honestly there's no single winner, but I reach for Brevo most often: the free tier is generous, setup is quick, and it authenticates cleanly with SPF and DKIM. SendGrid, Mailgun and Amazon SES are solid too. Pick one, add its DNS records, and delivery becomes reliable rather than a gamble.
Which port should I use — 587 (TLS) or 465 (SSL)?
Use « 587 » with TLS in almost every case — it's the modern submission port and rarely blocked by hosts. Port « 465 » with SSL still works and is fine if your provider recommends it. Whichever you pick, the module fills the port in from the provider preset, so you rarely set it by hand.
Why are my emails still going to spam even after setting up SMTP?
Usually it's the From address. If it doesn't match the domain you authenticated with SPF and DKIM, inbox providers distrust it. Set « Force From Email » to an address on your own domain — never a free Gmail or Yahoo one — and double-check that your DNS records are actually published and correct.
What happens if my email provider goes down?
With a single SMTP plugin, your mail simply fails. The SMTP Mailer module lets you configure multiple relays in priority order, so if the primary one is down, over quota or rejects the login, it automatically retries through the next—and can email or webhook you when a send fails, so you're not the last to know.
Is there a monthly sending limit on free SMTP tiers?
Yes. Free tiers all cap you — Brevo allows a few hundred emails a day, others meter by the month. For transactional mail like password resets and form notifications that's usually plenty. If you send newsletters or run a busy store, watch the quota, or configure a fallback relay to catch the overflow.
Comments