You have built a contact form, you test it yourself — no message in the inbox. Or a customer orders in your WooCommerce shop, but the order confirmation never arrives. A classic WordPress problem: the PHP standard function wp_mail() usually sends via php mail(), which mail providers increasingly filter as spam or refuse to accept at all. The solution is SMTP — emails run through an authenticated mail server that recipients trust. In this article I show you three ways to set that up cleanly.

Why does WordPress send badly by default?
PHP mail() (which WordPress uses by default) sends emails as an unauthenticated server. Recipients such as Gmail, Outlook, GMX and Web.de, however, check:
- SPF record — is this server allowed to send for this domain?
- DKIM signature — is the email authentic and unaltered?
- DMARC policy — what to do if SPF/DKIM are missing?
If none of that is right, the mail either lands in spam or is rejected outright. You notice the consequences painfully in lost leads, missing order confirmations and frustrated users.
Sending via SMTP solves the problem: you send through an authenticated mail service that has SPF, DKIM and DMARC set up correctly. Recipients accept the mails.
Three ways to set up SMTP in WordPress
Route 1: the WP Mail SMTP plugin (the classic)
Probably the most widely used SMTP plugin, with over 3 million active installations.
- Plugins → Add New → search for "WP Mail SMTP" → install, activate.
- Open Settings → WP Mail SMTP.
- Set From Email and From Name — that is the visible sender. Important: the domain has to match your site domain, otherwise SPF does not apply.
- Select the mailer — the steps depend on the provider you choose (see the next section).
- Save.
- Run Send a Test Email — if you receive the test mail, everything is working.

Route 2: the FluentSMTP plugin (my favourite in 2026)
From the makers of Fluent Forms. Leaner, faster, everything included in the free tier — some of which is only available in the Pro version of WP Mail SMTP.
Setup is analogous: install, activate, Settings → FluentSMTP → Add Connection, choose the provider, enter the credentials, send a test.
What I particularly value about FluentSMTP: a built-in email log immediately shows which mails WordPress sent, when and to whom. Invaluable when troubleshooting.
Route 3: use your host's own SMTP
If your host includes an email package (World4You, easyname, Strato or IONOS, for example), you can use its SMTP server directly — no third parties, no extra costs.
Configuration values (they vary by host):
- SMTP host: for example
mail.your-domain.atorsmtp.world4you.com - SMTP port: 465 (SSL) or 587 (STARTTLS)
- Encryption: SSL or TLS
- Authentication: enabled
- Username: the full email address (for example
mail@your-domain.at) - Password: the mailbox password
Advantage: no dependency on Mailgun/SendGrid/Brevo. Disadvantage: with very high sending volumes (1,000+ mails a day) host mailboxes are often limited.
Which SMTP provider suits which situation?
If you do not want to go via your host, these are the options:
| Provider | Free tier | Price | Strengths | Weaknesses |
|---|---|---|---|---|
| SendGrid | 100 mails/day | from $19.95/mo | Largest provider, many integrations | Complex to get started |
| Mailgun | 100/day (trial) | from $35/mo | Very reliable, developer-friendly | Pricing by volume |
| Brevo (formerly Sendinblue) | 300/day | from €8/mo | GDPR-friendly, EU hosting | Smaller reputation |
| Amazon SES | 62,000/mo (on EC2) | very cheap | Scalability, price | Setup effort, AWS account |
| Gmail/Workspace | 500 mails/day | via Workspace subscription | Highest delivery rate | Only for your own domain |
| Office 365 (Outlook) | depends on plan | via M365 | Established provider | OAuth setup required |

My default recommendation for 2026: for German-speaking solopreneurs and SMEs, Brevo (free up to 300 mails a day, inexpensive after that, EU GDPR compliant) or Gmail/Workspace if you use Workspace anyway.
Do you want to understand WordPress email sending properly for once — including SPF, DKIM and spam optimisation? In my online course we go through the system end to end, on your own site. → To the online course
SPF, DKIM, DMARC — what the providers require
Whichever SMTP service you use, the provider will ask you to set three DNS records on your domain:
SPF (Sender Policy Framework):
A TXT record that says: "the following mail servers may send for my domain."
Example: v=spf1 include:_spf.brevo.com ~all
DKIM (DomainKeys Identified Mail):
A TXT record with a public key. The mail server signs every outgoing mail with the private key.
Example: mail._domainkey.your-domain.at TXT "k=rsa; p=MIGfMA0G…"
DMARC (Domain-based Message Authentication, Reporting and Conformance):
A TXT record that says what recipients should do with mails that fail SPF/DKIM.
Example: _dmarc.your-domain.at TXT "v=DMARC1; p=quarantine; rua=mailto:reports@your-domain.at"
You set the DNS records at your domain registrar or your host (depending on where your DNS zone is hosted). Providers such as Brevo and SendGrid give you the exact values during setup. After DNS changes, propagation takes 1–24 hours — only test after that.
Validate with:
- MXToolbox (mxtoolbox.com) — SPF check, DKIM check, DMARC check.
- Mail-Tester.com — a test mail recipient that returns a score (0–10).
What to do if the test mail still does not arrive despite SMTP
The most common causes, in order of likelihood:
- The From address does not match the domain. If you set
info@gmx.atas the sender but send from the domainyour-domain.at, it gets blocked. Solution: the From address must match the domain. - DNS records not yet propagated. Wait 1–24 hours.
- Wrong SMTP credentials. Check username and password. With OAuth-based providers (Gmail, M365), regenerate the token.
- Port blocked. Some hosts block outgoing ports 25, 465 or 587. Ask host support or try another port.
- Plugin cache. Save the SMTP plugin again, deactivate/reactivate if necessary.
- Recipient's spam folder. Check spam. If it is there: validate SPF/DKIM/DMARC again.
- Rate limit. Free-tier providers often have low daily limits. For bulk mail, book a Pro plan.
Cron jobs for an email queue — when volumes really grow
On larger sites with high mail volume (a WooCommerce shop with a newsletter, automatic status mails and so on), synchronous mail sending can slow down page speed. WP-Cron runs by default on every page load — with high traffic the overhead multiplies.
Solution: a mail queue plugin such as Email Subscribers & Newsletters or FluentSMTP in cron mode. Mails land in a database queue and a real server cron works through them every 5–15 minutes.
More on cron setup and the performance background in my pillar article WordPress Page Speed 2026.
Testing mail delivery on contact forms
After the SMTP setup, every contact form deserves a test:
- Fill in the form (using a real recipient address different from the site mailbox).
- Check arrival — inbox and spam.
- Check the plugin log (FluentSMTP shows every send attempt).
- Check again after three hours — some mail servers delay delivery.
If you use form plugins such as Fluent Forms or Gravity Forms, you can set the email action explicitly to the SMTP address — otherwise the form plugin sometimes overrides the global sender.
Frequently asked questions
Do I need SMTP at all if my host is well configured?
If mails arrive reliably at Gmail/Outlook — no. As soon as you see a spam rate or missing confirmations, yes.
Is a free SMTP plugin enough?
Functionally, yes. WP Mail SMTP and FluentSMTP have everything solopreneurs need in the free version.
Is SMTP GDPR compliant?
If the provider is EU-based or GDPR-certified (Brevo, Mailjet, the EU region at SendGrid): yes. Otherwise conclude a data processing agreement. More in GDPR compliance in Austria.
Can I use Gmail as SMTP free of charge?
With a private Gmail account: yes, with an app password, limited to 500 mails a day. With a Google Workspace account: likewise, using OAuth authentication. For serious business sites I recommend Workspace.
How do I see whether my SPF/DKIM/DMARC setup is correct?
Mail-Tester.com → send a test mail to the address given → retrieve the score. Target: ≥ 9/10.
What happens if the SMTP plugin is deactivated?
WordPress falls back to PHP mail(). Mails are still sent, but usually with delivery rates below 50 %.
Conclusion
The SMTP setup takes 15–30 minutes and permanently solves one of the most common WordPress problems. Choose a plugin, connect a provider, set the DNS records, test — done. Once the test mail scores 9/10 at Mail-Tester.com, you are out of spam hell.
If you would like to go through the whole email setup on your own site with guidance — including SPF/DKIM/DMARC and delivery tests — my online course is the direct route. → To the online course
Image source, featured & inline: illustrations created specifically in the pletzenauer design (no stock photos).
Tags
