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.
1. How CartBay Sends Email
Section titled “1. How CartBay Sends Email”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().
2. Two Ways to Get Reliable Delivery
Section titled “2. Two Ways to Get Reliable Delivery”| Approach | How it works |
|---|---|
| SMTP plugin | Replaces 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 plugin | A 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.
3. Compare Supported Delivery Plugins
Section titled “3. Compare Supported Delivery Plugins”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.
| Plugin | Type | WordPress.org |
|---|---|---|
| WP Mail SMTP | SMTP plugin | wp-mail-smtp |
| Postman SMTP | SMTP plugin | postman-smtp |
| Post SMTP | SMTP plugin | post-smtp |
| Easy WP SMTP | SMTP plugin | easy-wp-smtp |
| FluentSMTP | SMTP plugin | fluent-smtp |
| SMTP Mailer | SMTP plugin | smtp-mailer |
| WP SMTP | SMTP plugin | wp-smtp |
| Mailgun | ESP-native plugin | mailgun |
| SendGrid | ESP-native plugin | sendgrid-email-delivery-simplified |
| Postmark | ESP-native plugin | postmark-approved-wordpress-plugin |
| Brevo | ESP-native plugin | mailin |
| WP Offload SES | ESP-native plugin (Amazon SES) | wp-offload-ses |
| WP SES | ESP-native plugin (Amazon SES) | wp-ses |
| SparkPost | ESP-native plugin | sparkpost |
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.
4. Set Up an SMTP Plugin
Section titled “4. Set Up an SMTP Plugin”Setting up any SMTP plugin generally follows the same pattern:
- Install and activate the plugin.
- Choose a mailer or connection type inside the plugin (most support plain SMTP plus several providers’ APIs).
- 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.
- 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
Section titled “WP Mail SMTP”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
Section titled “FluentSMTP”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
Section titled “Post SMTP”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
Section titled “Easy WP SMTP”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.
5. Set Up an ESP-Native Plugin
Section titled “5. Set Up an ESP-Native Plugin”Setting up a provider’s native plugin generally follows the same pattern:
- Sign up for the provider’s transactional email service and verify your sending domain.
- Generate an API key or SMTP credentials from the provider’s dashboard.
- Install and activate the provider’s official WordPress plugin.
- 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
Section titled “Mailgun”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
Section titled “SendGrid”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
Section titled “Postmark”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.
Amazon SES
Section titled “Amazon SES”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.
6. Configure SPF, DKIM, and DMARC
Section titled “6. Configure SPF, DKIM, and DMARC”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.
| Record | Purpose |
|---|---|
| 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.
7. Verify Email Delivery Works
Section titled “7. Verify Email Delivery Works”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:
- Enter a recipient email address.
- Click Send Test Email.
- 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.
Troubleshooting
Section titled “Troubleshooting”| Symptom | Likely cause | Fix |
|---|---|---|
| Test email fails with an authentication error | Wrong 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 error | Host, 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 arrive | Recovery sequence disabled, Action Scheduler delayed, or the session was canceled. | Check Recovery Sequence and Notifications. |
| Emails arrive in spam | Missing or misaligned SPF, DKIM, or DMARC. | Verify your sending domain and DNS records with your SMTP or ESP provider. |
| ”No SMTP plugin detected” warning persists | The 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. |
Best Practices
Section titled “Best Practices”- 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.