You installed FluentSMTP or Post SMTP to fix your WordPress emails, and now the test email fails with an error you don't understand. Or worse, the test says "sent" but nothing arrives.
Both plugins are free, reliable and widely used. When they fail, it's almost always one of a handful of setup mistakes. This guide shows you how to set each plugin up the right way, where to find its test and log screens, and how to fix the errors people hit most often.
Why use a provider connection instead of generic SMTP
Both plugins can connect to your email service in two ways: a plain SMTP connection (host, port, username, password), or a built-in connection for a specific provider that uses the provider's API key.
Use the built-in provider connection whenever your provider is on the list. Here's why.
1. No blocked ports
SMTP needs ports 587 or 465 to be open on your web server. Many hosts block them. A provider API connection goes over normal HTTPS, the same way your site loads web pages, so blocked ports stop being a problem.
2. Clearer errors
An API connection usually returns a plain error message from the provider, such as "domain not verified" or "invalid API key". SMTP errors are often vague timeouts.
If your provider isn't on the plugin's list, generic SMTP works fine. You just need to check the port issue below. If you're still deciding whether you need an SMTP plugin at all, read PHP mail vs SMTP first.
How to test what your site actually sends
The plugin's own test email only tells you whether the provider accepted the message. It doesn't tell you whether it will land in the inbox.
To see the full picture, get a free test address from WP Mail Tester and paste it into the plugin's test email screen as the recipient. Within about a minute you'll see whether SPF, DKIM and DMARC pass, your spam score, and whether the email really went through your provider or fell back to PHP mail().
Step 1: Set up FluentSMTP
FluentSMTP usually lives under Settings → FluentSMTP in your WordPress dashboard.
- Add a connection and choose your provider from the list. Brevo (listed as Sendinblue in some versions), Mailgun, SendGrid, Postmark and Amazon SES all have their own options.
- Paste the API key from your provider's dashboard. For Mailgun, also enter your sending domain and pick the right region (US or EU). For Amazon SES, enter your access key, secret key and region.
- Set the From email to an address on your own domain, such as
wordpress@yourdomain.com. - Turn on "Force From Email" so every plugin on your site sends from that address, even if a form plugin tries to use something else.
- Check that email logging is turned on in the plugin's settings. You'll want the log when something goes wrong.
The test email and the email log each have their own tab or link on the FluentSMTP screen. Look for Email Test and Email Logs.
Step 2: Set up Post SMTP
Post SMTP usually adds its own Post SMTP menu to the dashboard and starts with a setup wizard.
- Run the wizard and choose your provider's API option if it's listed. Brevo, Mailgun, SendGrid and Postmark have API options in recent versions. Some providers, including Amazon SES in some versions, may only be available as a paid add-on or through plain SMTP.
- Paste the API key when asked.
- Set the From address and name to an address on your own domain.
- Tick the option that stops other plugins and themes from changing the From address. The wording varies between versions, but it sits next to the From address fields.
Post SMTP keeps a log by default. Look for Send a Test Email and Email Log on the plugin's main screen or under its menu.
Step 3: Verify your domain with your provider
This is the step people skip, and it causes most "sent but not delivered" problems.
Your provider gives you DNS records to add for your domain, usually for SPF and DKIM. Add them exactly as given, then click the verify button in the provider's dashboard. Remember that your domain can only have one SPF record, so add the provider's include: to your existing record instead of creating a second one. Our SPF, DKIM and DMARC guide walks through each record.
Before you change any DNS records: take a screenshot of your current records, or export them if your DNS provider allows it. If something breaks, you can put everything back.
Step 4: Fix the common errors
Check the plugin's email log first. The error message there usually points straight at one of these.
Authentication failed
The provider rejected your login or API key. Check that:
- You copied the whole key, with no space at the start or end.
- The key has permission to send. Some providers let you create read-only or restricted keys.
- You're using an SMTP key where SMTP asks for a password. Brevo and others issue a separate SMTP key, which isn't your account password.
- For Mailgun, the region matches your account. An EU account with the US region selected fails.
Connection timed out or could not connect
This is almost always a blocked port. Plain SMTP uses port 587 with TLS or port 465 with SSL. Match the encryption to the port: 587 with SSL, or 465 with TLS, won't work.
If both ports time out, your host is probably blocking outgoing SMTP. Switch to the provider's API connection, or ask your host to open port 587.
Sender or domain not verified
The provider refuses to send from an address or domain you haven't verified. Either finish domain verification from Step 3, or change the From address to one on the domain you did verify. Amazon SES accounts still in the sandbox can also only send to verified recipients, so request production access in the SES console.
The test says "sent" but nothing arrives
"Sent" only means the provider accepted the email. It can still be filtered later. Common causes:
- Your domain isn't verified, so the email fails SPF or DKIM.
- The From address is a Gmail, Yahoo or Outlook address. Those providers' DMARC policies get your email rejected.
- Another SMTP plugin is also active and fighting over the connection. Keep only one.
- Your provider suppressed the recipient after an earlier bounce. Check the provider's suppression or bounce list.
Send a test to WP Mail Tester to see which check fails. Our guide to a failing WP Mail SMTP test email covers more of these cases, and most of it applies to any SMTP plugin.
Step 5: Test again from a real form
Once the plugin's test works, send a real email from your site, such as a contact form submission, to a fresh test address. Confirm SPF, DKIM and DMARC pass. If forms still misbehave, see contact form emails not arriving.
Common questions
Should I use FluentSMTP or Post SMTP?
Either works well. Pick the one whose provider list includes your email service with a free API connection. Never run both at the same time.
Do I need "Force From Email" if my form plugins are set up right?
It's a good safety net. A plugin update or a new plugin can quietly change the From address. Forcing it keeps every email on your verified domain.
My emails worked yesterday and stopped today. What changed?
Usually an expired or revoked API key, a plugin update that reset settings, or a DNS edit that broke your SPF record. Check the email log for the error, then re-run a test.