Skip to content

Email Delivery Setup

CartBay hands every recovery email to WordPress and WooCommerce for delivery — it does not send email itself. If sending is unreliable, the fix is your site’s mail setup, not CartBay. This page walks through choosing a delivery plugin, setting it up, authenticating your domain, and confirming that delivery actually works.

CartBay schedules and triggers recovery emails, but every send goes through wp_mail() — the same WordPress function WooCommerce uses for order confirmations, and the same function every other plugin on the site uses.

By default, wp_mail() falls back to PHP’s built-in mail() function. On most shared hosting, PHP mail() sends unauthenticated messages that receiving mail servers routinely spam-filter, throttle, or reject outright. This is not a CartBay-specific problem — it affects every transactional email a WordPress or WooCommerce site sends, including order emails and password resets.

The fix is the same one WooCommerce stores have always needed: connect WordPress to an authenticated mail transport instead of relying on PHP mail().

ApproachHow it works
SMTP pluginReplaces PHP mail() with an authenticated SMTP or API connection to a mail relay. Enter a host, port, and credentials (or an API key) once, and every WordPress email — including CartBay’s — routes through it.
ESP-native pluginA transactional email provider’s own WordPress plugin (Mailgun, SendGrid, Postmark, Brevo, Amazon SES, and others each publish one). It connects directly to that provider’s API instead of generic SMTP, and is usually simpler to set up if you have already chosen that provider.

Both approaches solve the same problem: give WordPress an authenticated way to hand off mail. Neither is inherently better — pick whichever matches a provider you already use or want to use.

CartBay’s built-in mail environment detector recognizes the plugins below and treats an active match as high-confidence evidence that reliable delivery is configured. This is the same detection shown in the Setup Wizard’s Email Delivery step and on the Notifications page.

PluginTypeWordPress.org
WP Mail SMTPSMTP pluginwp-mail-smtp
Postman SMTPSMTP pluginpostman-smtp
Post SMTPSMTP pluginpost-smtp
Easy WP SMTPSMTP plugineasy-wp-smtp
FluentSMTPSMTP pluginfluent-smtp
SMTP MailerSMTP pluginsmtp-mailer
WP SMTPSMTP pluginwp-smtp
MailgunESP-native pluginmailgun
SendGridESP-native pluginsendgrid-email-delivery-simplified
PostmarkESP-native pluginpostmark-approved-wordpress-plugin
BrevoESP-native pluginmailin
WP Offload SESESP-native plugin (Amazon SES)wp-offload-ses
WP SESESP-native plugin (Amazon SES)wp-ses
SparkPostESP-native pluginsparkpost

This list covers what CartBay can identify by name, not every plugin that works — any other SMTP plugin or transactional email service can deliver CartBay’s recovery emails just as reliably.

Setting up any SMTP plugin generally follows the same pattern:

  1. Install and activate the plugin.
  2. Choose a mailer or connection type inside the plugin (most support plain SMTP plus several providers’ APIs).
  3. Enter the host, port, encryption, username, and password your mail provider or host gives you — or an API key, if the plugin connects that way.
  4. Send a test email from the plugin’s own test tool, then confirm again with CartBay’s Send Test Email (see below).

WP Mail SMTP is one of the most widely used SMTP plugins for WordPress. After activating it, run its setup wizard, choose a mailer, and enter the credentials or API key for your chosen provider. It includes its own delivery test tool in addition to CartBay’s.

FluentSMTP can manage multiple mail connections at once. Add a connection, choose your provider or plain SMTP, and enter the host, port, credentials, or API key. It also keeps its own delivery log.

Post SMTP sets up an authenticated SMTP or OAuth connection for WordPress mail. Run its onboarding wizard, choose your provider, and authorize or enter credentials. Post SMTP keeps a delivery log you can cross-reference with CartBay’s Notifications page.

Easy WP SMTP provides a simplified setup wizard. Choose a mailer, enter your provider’s credentials or API key, and send a test email from its own dashboard.

Setting up a provider’s native plugin generally follows the same pattern:

  1. Sign up for the provider’s transactional email service and verify your sending domain.
  2. Generate an API key or SMTP credentials from the provider’s dashboard.
  3. Install and activate the provider’s official WordPress plugin.
  4. Enter the API key or credentials in the plugin’s settings to connect it.

Brevo (formerly Sendinblue) connects through its WordPress plugin. Sign up for a Brevo account, generate an API key, install the plugin, and connect it using that key.

Mailgun’s official plugin connects WordPress directly to your Mailgun domain. Sign up, verify your sending domain, install the plugin, and enter your API key and domain.

SendGrid’s plugin sends WordPress mail through the SendGrid API. Create an account, generate an API key, install the plugin, and enter the key in its settings.

Postmark’s official plugin routes WordPress mail through Postmark. Sign up, verify your sending domain, generate an API token, install the plugin, and connect it with that token.

There is no single official Amazon SES plugin — connect through WP Offload SES or WP SES instead. Both send WordPress mail through your Amazon SES account: create an AWS account, verify your sending domain in SES, request production sending access, generate IAM credentials, then install and connect one of these plugins using those credentials.

Any other SMTP or ESP plugin not listed above works the same way: authenticate WordPress with the provider, then confirm delivery with a test email.

Domain authentication records tell receiving mail servers that your outgoing mail is legitimate. They matter for inbox placement no matter which SMTP or ESP plugin you use.

RecordPurpose
SPF (Sender Policy Framework)Lists which servers are allowed to send email for your domain. Receiving servers check the sending server’s address against this list.
DKIM (DomainKeys Identified Mail)Adds a cryptographic signature to outgoing messages, verified against a public key published in your DNS. Confirms the message was not altered in transit and really came from your domain.
DMARC (Domain-based Message Authentication, Reporting and Conformance)A DNS policy that tells receiving servers what to do when SPF or DKIM checks fail, and where to send failure reports.

Mailbox providers increasingly filter or reject unauthenticated mail straight to spam, so configuring all three materially improves whether recovery emails reach the inbox.

These are DNS records, so you add them at your domain’s DNS provider — your registrar or hosting control panel, wherever you manage DNS for your store’s domain. Your SMTP plugin or ESP dashboard will show the exact record values to add. Use the values your provider gives you rather than reusing values from a different service; they are provider-specific.

CartBay includes a built-in Send Test Email tool that checks whether wp_mail() can actually deliver on this specific site, without needing an external tool.

Run it from either place:

  • The Setup Wizard’s Email Delivery step, during first-run setup.
  • WooCommerce > CartBay > Notifications, in the Email Delivery Test section, any time afterward.

To use it:

  1. Enter a recipient email address.
  2. Click Send Test Email.
  3. Check the result message next to the button, and check the recipient inbox within a few minutes.

If the test fails, CartBay captures the real underlying error WordPress raised (for example, SMTP Error: Could not authenticate.) and shows it in the result message instead of a generic failure notice. Use that specific reason to fix the actual problem — wrong credentials, an unreachable host, a blocked port, or an unverified domain — instead of guessing. See Notifications for the full detection and test-email reference.

SymptomLikely causeFix
Test email fails with an authentication errorWrong SMTP username/password or API key.Re-enter the credentials in your SMTP or ESP plugin, then send the test again.
Test email fails with a connection or timeout errorHost, port, or encryption setting is wrong, or your host blocks outbound mail ports.Confirm the settings against your provider’s documentation, or ask your host whether outbound SMTP is blocked.
Test email succeeds, but recovery emails never arriveRecovery sequence disabled, Action Scheduler delayed, or the session was canceled.Check Recovery Sequence and Notifications.
Emails arrive in spamMissing or misaligned SPF, DKIM, or DMARC.Verify your sending domain and DNS records with your SMTP or ESP provider.
”No SMTP plugin detected” warning persistsThe detector does not recognize the active plugin, or none is installed.Install one of the plugins in the comparison table above, or confirm your existing plugin is active.
Works on staging, fails on production (or vice versa)Mail configuration, credentials, or outbound port access differs between environments.Configure and test the delivery plugin separately in each environment.

  • Set up an SMTP or ESP-native plugin on every environment that sends real recovery email, not just production.
  • Configure SPF, DKIM, and DMARC for the domain your recovery emails send from.
  • Run CartBay’s Send Test Email after any hosting, DNS, or delivery plugin change.
  • Monitor Notifications for failed and retry-queued emails, not just totals sent.
  • Keep SMTP credentials and API keys out of version control, and rotate them if ever exposed.