WooCommerce SMTP fix

WooCommerce SMTP plugin conflict fix.

Use this when WooCommerce order emails pass through multiple mail plugins, duplicated hooks, conflicting From headers, or the wrong SMTP provider.

When to use this fix

  • Two SMTP plugins are active or recently switched.
  • WooCommerce emails use a different From address than normal WordPress emails.
  • Provider logs show duplicate attempts or different sender identities.
  • SMTP test email works, but WooCommerce order emails fail or use the wrong provider.

When not to use this fix yet

  • The WooCommerce email template is disabled.
  • The order status does not trigger the selected email.
  • No SMTP plugin is active and the host is using default PHP mail.
  • Provider accepted the message and only the recipient inbox is filtering it.

WooCommerce path

StageConflict-specific check
Order eventConfirm the order status actually fires the WooCommerce email.
Email templateVerify the template is enabled before changing SMTP plugins.
RecipientCheck whether the right customer/admin address is being sent to.
wp_mailList every plugin, snippet, or hook that touches wp_mail or PHPMailer.
SMTPConfirm exactly one SMTP plugin/provider handles the order email.
InboxIf one provider accepted the message, inspect headers and delivery filtering.

Conflict evidence matrix

EvidenceConflict typeFirst correction
WP Mail SMTP and FluentSMTP both activeDouble mail overrideKeep one SMTP plugin active.
Test email uses Provider A, order email uses Provider BProvider mismatchCheck plugin priority and WooCommerce From filters.
Duplicate provider log entriesDuplicate send/hook behaviorDisable overlapping mail plugins and snippets.
Order email From differs from configured SMTP FromHeader overrideForce one domain-based From in SMTP plugin and WooCommerce.
Only WooCommerce emails fail authenticationWooCommerce-specific sender mismatchCompare From and Return-Path in provider logs.

Concrete conflict examples

Setup foundWhy it breaks WooCommerce mailClean correction
WP Mail SMTP + FluentSMTP both activeBoth plugins can override PHPMailer settings, From headers, or provider routing.Keep one SMTP plugin active and retest one order email.
SMTP Mailer plugin + custom snippetThe snippet can replace host, port, auth, or From after the plugin config loads.Remove the snippet or move all settings into the chosen plugin.
Old mu-plugin mail hookmu-plugins load early and may keep forcing legacy SMTP settings.Inspect wp-content/mu-plugins and disable stale mail overrides.
phpmailer_init in theme or snippets pluginThe hook can rewrite SMTP, From, Reply-To, or Return-Path only during sends.Search for phpmailer_init and consolidate to one mail path.
WooCommerce email filter changes headersOrder emails may use different From/recipients than normal WordPress test emails.Compare provider log headers for a real order resend.

Before / after plugin state

Before

Active plugins:
- WP Mail SMTP
- FluentSMTP
- old SMTP snippet in functions.php

WooCommerce From:
store@gmail.com

After

Active mail path:
- One SMTP plugin only

WooCommerce From:
orders@example.com

Test order:
provider log shows one accepted message

Verification checklist

  1. List every active SMTP/mail/deliverability plugin.
  2. Search the theme and snippets plugin for wp_mail, phpmailer_init, and WooCommerce email filters.
  3. Disable all but one SMTP path.
  4. Send a plain SMTP test email.
  5. Resend one WooCommerce order email and verify one provider log event.
  6. Confirm From, Reply-To, and Return-Path are expected.

Common false positives

  • SMTP test works can still hide WooCommerce-specific From overrides.
  • Inactive old plugin may leave constants, snippets, or mu-plugin mail hooks behind.
  • Provider accepted one test does not prove WooCommerce used the same provider.