WooCommerce SMTP Plugins Compared for US Stores

WooCommerce SMTP Plugins Compared for US Stores

If your WooCommerce order confirmations are landing in spam or not arriving at all, install FluentSMTP, point it at a real sending service, and publish SPF and DKIM records for your domain. The plugin is the easy half of this decision and the half people spend all their time on; the sending service and your DNS records are what actually decide whether a receipt reaches the customer.

This compares the four WooCommerce SMTP plugins worth considering, on the things that matter when a store depends on email: what the free version really includes, whether you can see a failed send after the fact, and what happens when the mail provider goes down mid-checkout. Versions, install counts and free-versus-paid splits below come from the plugin pages on WordPress.org, checked on 5 October 2026 against WordPress 7.1.2 and WooCommerce 11.1.2.

The four things I judged each plugin on

  • Is email logging free? This is the single most important column. Without a log you cannot answer “did the customer get their receipt?” — you are guessing, and the customer is annoyed. Several popular plugins put logging behind a licence.
  • What happens when the provider fails? A fallback mailer turns an outage into a delay. Without one, the email is simply gone, and WooCommerce will not try again.
  • Which providers work without paying the plugin author? Amazon SES is the cheapest way to send volume, and it is paywalled in two of the four plugins here.
  • Maintenance signal. Version, last update, install base, review count, and tested-up-to. Mail is not a feature you want handled by an abandoned plugin.

WooCommerce SMTP plugins compared at a glance

PluginInstalls / ratingEmail logFallback mailerAmazon SESMain weakness
FluentSMTP 2.4.1700,000+ · 4.8 from 407FreeFreeFreeSmaller review pool than its install count suggests
WP Mail SMTP 4.10.04 million+ · 4.8 from 5,202Pro onlyPro onlyPro onlyThe features a store needs most are the paid ones
Post SMTP 4.0.2300,000+ · 4.7 from 527FreeFreeFreeBusiest interface of the four; more setup surface
Easy WP SMTP 2.15.1500,000+ · 4.6 from 707Pro onlyPro onlyPro onlyLast updated about two months ago

All four are tested against WordPress 7.1.2. FluentSMTP and Post SMTP give you logging and failover for nothing; WP Mail SMTP and Easy WP SMTP do not. That one difference decides this comparison for most stores, so the rest of this article is mostly about why logging matters more than it sounds and what to do with the provider side of the setup.

Why WooCommerce order emails vanish in the first place

WordPress sends mail through wp_mail(), which wraps PHPMailer, which by default hands the message to the server’s local sendmail binary. That means your order confirmation is sent by a shared web server that has no relationship with your domain. Gmail and Outlook ask a reasonable question — does the domain in the From address authorise this server to send on its behalf? — and the answer is no. The message gets filtered or dropped silently.

An SMTP plugin fixes this by authenticating to a service that is authorised: it logs in with credentials and hands the mail to a provider whose IP addresses have a sending reputation. The plugin is a router. It does not improve your deliverability by itself — it lets you choose someone whose deliverability is already good.

The From address has to be on your own domain

Set it under WooCommerce → Settings → Emails, at the bottom of the page. A From address at gmail.com or yahoo.com will fail those providers’ own DMARC policies and get rejected outright, no matter which SMTP plugin you install. Use [email protected], and make sure that mailbox actually receives replies — customers hit reply on receipts constantly.

FluentSMTP: the one I install by default

Version 2.4.1, 700,000+ active installs, 4.8 out of 5 from 407 reviews, tested to WordPress 7.1.2, PHP 7.4 or newer, last updated about a week before this was written. It is free with no paid tier at all — the developers state plainly that there is no pro version, no add-ons and no locked features.

What you get for nothing: Amazon SES, Gmail and Outlook via OAuth, SendGrid, Mailgun, Postmark, Brevo, SparkPost, SMTP2GO, Elastic Email, Cloudflare and generic SMTP; full email logging with headers, body and the provider’s response; one-click resend of any logged message; and multiple active connections so a second provider picks up when the first fails.

The honest weakness: 407 reviews against 700,000 installs is a thin review pool for a plugin that size, so there is less public evidence of edge-case behaviour than the install count implies. It is also one vendor’s free product — the economics depend on it introducing people to their other plugins, and a free tool with no revenue of its own is always slightly more exposed than a paid one. Neither of those is a reason to avoid it, but they are the reasons someone might reasonably choose differently.

Version 4.10.0, over 4 million active installs, 4.8 out of 5 from 5,202 reviews, tested to WordPress 7.1.2, updated days before this was written. On maintenance signal alone it wins this comparison outright — nothing else here has that install base or that review pool, and it is actively developed.

The free version routes mail competently through SendLayer, SMTP.com, Brevo, Gmail, Mailgun, SendGrid, Postmark, SparkPost, SMTP2GO, Mailjet, Elastic Email and generic SMTP, and the setup wizard is the friendliest of the four. Then read what sits in Pro: email logging, Amazon SES, Microsoft 365 and Outlook, backup connection, smart conditional routing, rate limiting and email alerts.

For a blog that only sends password resets, the free version is fine. For a store, you have just lost the log and the failover — the two things you specifically wanted. If you are going to pay for an SMTP plugin this is a reasonable one to pay for, and the Pro conditional routing is genuinely useful if you want order emails on a transactional provider and marketing on a different one. But compare it against FluentSMTP giving you logging and failover at zero, and be clear about what the licence is buying you: polish, support and routing rules, not deliverability.

Post SMTP: the most capable free version

Version 4.0.2, 300,000+ active installs, 4.7 out of 5 from 527 reviews, tested to WordPress 7.1.2, PHP 7.1 or newer. Free includes 20-plus mailers, detailed email logs, fallback SMTP, failure alerts by email, Slack, webhook or a Chrome extension, a mobile app for monitoring, and a built-in SPF, DKIM and DMARC checker — that last one saves you a trip to an external DNS tool.

The failure alerts are the real argument for it. A log tells you an email failed when you go looking. An alert tells you at 9am that last night’s orders did not get receipts, which is the difference between one apology and twenty.

The honest weakness: it is the busiest of the four to configure, with more screens and more options than most stores need, and the free feature list is long enough that finding the setting you want takes longer. Pro adds one-click Gmail and Microsoft 365 setup, Teams and Twilio SMS alerts, open tracking, auto-resend of failed emails and quota scheduling. Its PHP 7.1 floor also tells you the codebase carries older compatibility shims — not a fault, but if you are still on a PHP version that old, deal with that first and update PHP safely before you blame your mail setup.

Easy WP SMTP: hard to recommend over the other three

Version 2.15.1, 500,000+ active installs, 4.6 out of 5 from 707 reviews, tested to WordPress 7.1.2, last updated about two months ago. It works, and 500,000 sites running it is not nothing. But its Pro split is close to WP Mail SMTP’s — logging, SES, Gmail, Microsoft, Zoho, alerts, backup connection, routing and rate limiting are all paid — while its install base, review score and update cadence all trail. If you already run it and it delivers your mail, there is no urgency to change. If you are choosing today, the other three are easier to justify.

The provider decision matters more than the plugin

Every plugin above is a pipe. What goes in the far end is a sending service, and that is where deliverability actually lives. Free-tier allowances below are from each provider’s own pricing page; the paid entry prices were checked in September 2026 and are the figures most likely to have moved since, so confirm them before you commit.

ProviderFree tierEntry paid tierSuits
Brevo300 emails/dayStarter, from $20/mo for 5,000 emails/moSmall stores wanting one tool for receipts and newsletters
SMTP2GO1,000 emails/moStarter, $10/mo for 10,000 emails/moThe simplest setup; a good first move off local sendmail
Postmark100 emails/mo (testing only)Basic, $15/mo from 10,000 emails/mo, $1.80 per extra 1,000Stores where a lost receipt is a real cost
Amazon SESUp to $200 in AWS credits for new accounts, 6 monthsFrom $0.10 per 1,000 emails à la carteVolume, if you are comfortable in AWS

Two things that are not in the table. Brevo’s free tier is a daily cap, not a monthly one — 300 a day is generous for a small store until a flash sale puts 400 order emails in one afternoon and the last hundred queue or fail. And Postmark deliberately separates transactional and broadcast streams, which is why its reputation is what it is; if you only ever send receipts, that focus is worth more than a lower price.

Cost here is small next to what checkout already costs you. A store sending 3,000 emails a month pays single digits for mail and a percentage of every order to its payment processor — if you have not worked through what WooCommerce payment gateway fees actually come to, that is a far bigger number to go after than your SMTP bill.

SPF, DKIM and DMARC: the part that actually fixes the spam folder

Installing the plugin and connecting the provider gets you authenticated sending. Publishing DNS records gets you trusted sending. Skip this and your receipts still land in Promotions or spam. Your provider will give you the exact values; the shapes look like this:

# SPF — one TXT record at the root. You get ONE. Merge, never duplicate.
yourstore.com.        TXT    "v=spf1 include:sendingservice.example ~all"

# DKIM — a CNAME (or TXT) your provider hands you, on a selector subdomain
s1._domainkey.yourstore.com.   CNAME   s1.dkim.sendingservice.example.

# DMARC — start at p=none and read the reports before tightening
_dmarc.yourstore.com. TXT    "v=DMARC1; p=none; rua=mailto:[email protected]; pct=100"

The mistake I see most often is two SPF records on one domain. If you already send through Google Workspace and you add a second record for your new provider, SPF breaks entirely — the spec allows exactly one, and a second one is a permanent error, not a merge. Combine the includes into a single record instead:

# Wrong — two records, SPF now fails for everything
"v=spf1 include:_spf.google.com ~all"
"v=spf1 include:sendingservice.example ~all"

# Right — one record, both senders
"v=spf1 include:_spf.google.com include:sendingservice.example ~all"

Leave DMARC at p=none for a couple of weeks and actually read the aggregate reports before you move to quarantine or reject. Jumping straight to reject on a store that also sends mail from a CRM, a helpdesk and an accounting tool is how you discover those senders existed — by having their mail bounce.

The WooCommerce-specific trap: deferred transactional emails

Here is the failure mode that sends store owners chasing their SMTP settings when the SMTP settings are fine. WooCommerce can defer order emails instead of sending them during checkout, so the customer is not kept waiting on a network call to your mail provider. Deferred mail is handed to WC_Background_Emailer and dispatched by WP-Cron.

If WP-Cron is broken, your order emails are never sent

Not late — never. And the SMTP plugin’s own test email still works perfectly, because that sends immediately and never touches the queue. Everything looks correctly configured and customers still get nothing.

If you suspect this, the same jammed-cron diagnosis applies as for the missed schedule error on scheduled posts — it is the same underlying system failing. Confirm cron is running before you touch anything in your mail config. To take deferral out of the picture while you test, turn it off temporarily:

// Send WooCommerce transactional emails immediately instead of queueing them.
// Useful for diagnosis. Leaving it on permanently adds the mail provider's
// response time to every checkout, so remove it once you have your answer.
add_filter( 'woocommerce_defer_transactional_emails', '__return_false' );

Put that in a site-specific plugin or a code snippets plugin, not in your theme’s functions.php where the next theme update will eat it. If emails start arriving the moment you add that filter, your problem was never SMTP — it was cron, and that is where the fix belongs.

A transactional mailer is not a newsletter tool

These are two different jobs and mixing them causes real damage. Transactional mail is one message to one person triggered by an action, and it must arrive. Marketing mail goes to a list, needs consent and unsubscribe handling, and gets measured on opens and clicks. An SMTP plugin does the first and none of the second — it has no list, no segments and no unsubscribe link.

Sending campaigns through the same provider and domain reputation as your receipts is the specific thing to avoid. One bad campaign with a high complaint rate drags down the reputation your order confirmations depend on. Keep them on separate streams, or separate providers.

For the marketing side, MailPoet is the established WordPress option with a large install base and deep WooCommerce integration, and it is where I would point most stores. Send Emails is a newer alternative that handles campaigns, automation workflows, subscriber tagging, and WooCommerce purchase triggers with revenue attribution. Disclosure: I build and maintain Send Emails. Judged on the same maintenance signal I applied to everything above, it is at version 2.6.1 with roughly 40 active installs and a single review — that is an early-stage plugin, and you should weigh it accordingly. If you want something proven on a store that depends on its email, use MailPoet. Either way, neither plugin replaces the SMTP setup in this article; they sit on top of it.

Set it up and verify it in this order

Pick a provider and verify your domain

Do this first. The plugin is useless without credentials, and domain verification is where the DNS records come from.

Publish SPF, DKIM and DMARC

Use the exact values your provider gives you, merging into your existing SPF record rather than adding a second one. Allow for DNS propagation before you judge the result.

Install the plugin and connect the provider

Set the From address to a real mailbox on your own domain, not a free webmail address.

Match the From details in WooCommerce too

Under WooCommerce → Settings → Emails. WooCommerce keeps its own From name and address fields, and they are not the ones you just set in the plugin.

Send a test to Gmail and to Outlook

They filter differently, so passing one proves nothing about the other. Check the Promotions tab and the spam folder, not just the inbox.

Place a real test order

This is the step people skip, and it is the only one that exercises the deferred-email path above. A passing test email does not prove order emails work.

Read the email log, not the success message

Confirm what the provider actually returned. “Sent” on screen means the handoff succeeded, which is not the same as delivered.

If you have WP-CLI on your host, this is the fastest way to confirm wp_mail() itself works, independent of WooCommerce:

wp eval 'var_dump( wp_mail( "[email protected]", "SMTP test", "If you can read this, wp_mail works." ) );'

A return of bool(true) means the plugin handed the message to your provider successfully. It does not mean the message was delivered — only the provider’s log can tell you that, which is the whole argument for picking a plugin that shows you one.

If mail worked yesterday and stopped today without you changing any mail settings, treat it as a plugin interaction rather than a mail problem and isolate the conflict methodically. Mail-adjacent plugins — forms, membership, booking, anything that filters wp_mail — are the usual culprits. It is also worth a look at WordPress Site Health, which flags a failing loopback request; that same loopback failure is what stops WP-Cron, and therefore your deferred order emails.

Frequently asked questions about WooCommerce SMTP plugins

Which WooCommerce SMTP plugin should I choose?

FluentSMTP for most stores — free email logging, free fallback connections and free Amazon SES, with nothing held back for a licence. Choose Post SMTP instead if you want failure alerts pushed to Slack or your phone rather than having to go and look at a log. Choose WP Mail SMTP Pro if you want a commercial product with support behind it and you will use its conditional routing.

Do I still need an SMTP plugin if my host says it handles email?

Test it rather than trusting it. Send a test order to a Gmail address and an Outlook address and look at where it lands, including the Promotions tab and spam. Some managed WordPress hosts do run a proper authenticated mail service and you need nothing extra; plenty route through local sendmail and describe that as “email included”.

Why does the plugin’s test email arrive but order emails do not?

Almost always WooCommerce’s deferred email queue. Test emails send immediately; order emails go through WP-Cron. If cron is jammed the queue never runs. Confirm cron is firing, or add the woocommerce_defer_transactional_emails filter above temporarily to rule it in or out. The other possibility is that the specific email is switched off under WooCommerce → Settings → Emails.

Is free email logging worth switching plugins for?

For a store, yes. The first time a customer says “I never got my receipt”, a log turns a twenty-minute investigation into a ten-second one and tells you whether to resend or apologise. Running a store without one means you cannot distinguish a delivery failure from a customer who deleted the email.

Can I use Gmail or Google Workspace as my WooCommerce mail provider?

You can, through OAuth, and it is free if you already pay for Workspace. It is a poor fit past a trickle of orders: Workspace enforces daily sending limits intended for human correspondence, and a sales spike can hit them. Gmail also has no transactional sending reputation in the sense a dedicated provider does. Use it to get off local sendmail today, then move to a real transactional provider.

The short version

Install FluentSMTP, connect SMTP2GO or Brevo to start, publish SPF, DKIM and a p=none DMARC record, and place a real test order rather than trusting the test-email button. If your plugin’s test mail arrives but order confirmations do not, stop adjusting SMTP settings and go look at WP-Cron. And whichever plugin you land on, pick one that lets you see the log for free — the day a customer tells you their receipt never arrived, that log is the only thing that can answer them.

Leave a Reply to This Post