WooCommerce abandoned cart emails: send from your own SMTP, not a third-party tool

Abandoned-cart recovery lives or dies on whether the email actually lands in the inbox — and on who ends up holding your customers' email addresses. Most SaaS cart tools send through their own servers. There's a better default for a WooCommerce store: send from your own authenticated mailbox. Here's why it wins on deliverability and data, the 2024 rules you have to meet, and how to set it up.

Short version: Your host's default mail() is unreliable and often spam-filed. Since 2024, Gmail and Yahoo require bulk senders to authenticate with SPF, DKIM and DMARC. Sending abandoned-cart emails via your own SMTP from an authenticated domain means better, self-owned deliverability and your customer data never leaves your server — unlike a SaaS cart tool that sends through its infrastructure on a shared reputation, for a monthly fee.

Why default WooCommerce email fails

Out of the box, WordPress sends through PHP's mail(), which budget hosts routinely throttle, block, or mark as spam. On top of that, Gmail and Yahoo began requiring bulk senders to authenticate with SPF, DKIM and DMARC in 2024 — unauthenticated mail from a mismatched domain gets filtered hard. For time-sensitive recovery emails, that's the difference between a recovered sale and a message nobody sees.

Two ways to send recovery emails

 Third-party cart SaaSYour own SMTP (via wp_mail)
Where it sends fromTheir servers, shared reputationYour authenticated domain
Your customers' emailsFlow to the vendorStay on your server
Deliverability controlTied to their poolYour SPF/DKIM/DMARC
CostMonthly / per-emailYour own mailbox — no per-email fee
SetupSign up, connectSMTP plugin + domain auth (once)

Both can deliver well. The difference is ownership: with your own SMTP you control the sending reputation and keep customer data in-house; with a SaaS tool you rent both, and your shopper data leaves your store.

How to set it up (once)

  1. Install an SMTP plugin such as WP Mail SMTP, and connect it to your mailbox or an email service (SendLayer, Brevo, Amazon SES, or your own SMTP server).
  2. Authenticate your domain: add SPF, DKIM and a DMARC record for your sending domain, and send from an address that matches it (e.g. [email protected]).
  3. Send a test and check it authenticates (most inboxes show "signed by / mailed by" your domain).
  4. Use a recovery plugin that sends through wp_mail — it then uses your configured SMTP route automatically, with no separate sending service to pay for.
💡 Set up domain authentication once and every WooCommerce email benefits — orders, receipts and recovery — not just abandoned-cart mail.

Cartright sends through your own mailbox

Cartright sends abandoned-cart recovery emails via wp_mail — so they go out through whatever SMTP you've set up on your own site, from your own domain. No per-email fee, no third-party sending service, and your customers' data never leaves your server. Add its session-verified tracking (bots filtered) and revenue reconciled to real orders, and you get recovery you can trust — free core, no nag banners, Pro is pay-once.

Get Cartright free on WordPress.org See Pro (Lifetime)

FAQ

Own SMTP or the plugin's sending service?

Own SMTP is better for data control and self-owned deliverability — emails send from your domain and customer data stays on your server. SaaS tools send through their infra on a shared reputation, for a fee.

Why do my cart emails go to spam?

Default PHP mail is unreliable/blocked, and since 2024 Gmail/Yahoo require SPF, DKIM and DMARC. Send via SMTP from an authenticated domain matching your from-address.

How do I set up SMTP?

Install an SMTP plugin, connect your mailbox/service, add SPF/DKIM/DMARC. A plugin that sends via wp_mail then uses that route automatically.

Does Cartright send from my own mailbox?

Yes — via wp_mail, through your configured SMTP. No per-email fee, no third-party sending, customer data stays on your server.

Related: is your plugin counting fake bot carts? →  ·  Cart recovery plugins compared →