Title: Dualsend SMTP Failover
Author: Shubham
Published: <strong>September 21, 2026</strong>
Last modified: October 6, 2026

---

Search plugins

![](https://s.w.org/plugins/geopattern-icon/dualsend-smtp-failover.svg)

# Dualsend SMTP Failover

 By [Shubham](https://profiles.wordpress.org/cshubh832/)

[Download](https://downloads.wordpress.org/plugin/dualsend-smtp-failover.1.1.7.zip)

 * [Details](https://mfe.wordpress.org/plugins/dualsend-smtp-failover/#description)
 * [Reviews](https://mfe.wordpress.org/plugins/dualsend-smtp-failover/#reviews)
 *  [Installation](https://mfe.wordpress.org/plugins/dualsend-smtp-failover/#installation)
 * [Development](https://mfe.wordpress.org/plugins/dualsend-smtp-failover/#developers)

 [Support](https://wordpress.org/support/plugin/dualsend-smtp-failover/)

## Description

WordPress sends email with PHP’s `mail()` function by default, which many hosts 
block or send to spam. Dualsend SMTP Failover routes your email through a mail server
you choose, over SMTP or a provider API, and switches to a second server when the
first one fails.

#### How delivery works

 1. The **Primary SMTP Server** (API first when set to API mode, then SMTP).
 2. The **Fallback SMTP Server**, while its switch is on, in the same way, with no 
    waiting in the page.
 3. Background retries, when both servers fail: the email waits in a queue and is tried
    again every **Retry Interval** minutes, up to **Maximum Retries** times.
 4. WordPress itself, as a last resort after the last retry, or at once when Maximum
    Retries is 0.

#### Features

 * Primary and fallback mail servers, each over SMTP or a provider API, with automatic
   failover
 * Connection and credential tests on the settings screen
 * A test message that follows the same route as your real email
 * Optional debug log, with passwords and API keys masked and no message bodies
 * Works with Contact Form 7, WooCommerce and any plugin that sends through `wp_mail()`

API providers: Brevo, Elastic Email, MailerSend, Mailgun, Mailjet, Mandrill, Postmark,
Resend, SendGrid, SendLayer, SMTP.com, SMTP2GO, SparkPost. Any other provider, such
as Amazon SES, Gmail, Microsoft 365 or Zoho Mail, works over SMTP.

Fonts: Inter and Plus Jakarta Sans, bundled under the SIL Open Font License 1.1.

### External services

The plugin connects to the email provider you configure, when it sends your mail
or when you press a test button. It sends that provider the message itself: recipients,
subject, body and your sender address. With plain SMTP it connects only to the host
you entered.

**Install reports, only if you allow them.** The settings page asks, as do the Dashboard
and the Plugins screen until answered or you click Not now. Nothing is sent until
an administrator clicks Allow. Then the site sends wpsmtpfallback.com, run by the
plugin author, a report at once, weekly, and on deactivation or deletion: a random
ID and signing key, the site name, address and admin email, the WordPress, PHP and
plugin versions, whether it is a network, and the mail setup (SMTP or API and the
provider of each server, fallback on or off). Never a server name, username, password,
API key or message content. The country comes from the request IP address, which
our install records do not keep but our server logs do. Deactivating pauses the 
reports. Stop sharing on the settings page, or deleting the plugin, ends them and
removes the site name and admin email from our install records, not from emails 
already sent to us. [terms](https://wpsmtpfallback.com/terms/), [privacy](https://wpsmtpfallback.com/privacy-policy/)

 * Brevo: api.brevo.com. [terms](https://www.brevo.com/legal/termsofuse/), [privacy](https://www.brevo.com/legal/privacypolicy/)
 * Elastic Email: api.elasticemail.com. [terms](https://elasticemail.com/resources/usage-policies/terms-of-use/),
   [privacy](https://elasticemail.com/resources/usage-policies/privacy-policy/)
 * MailerSend: api.mailersend.com. [terms](https://www.mailersend.com/legal/terms-of-use),
   [privacy](https://www.mailersend.com/legal/privacy-policy)
 * Mailgun: api.mailgun.net or api.eu.mailgun.net. [terms](https://www.mailgun.com/legal/terms/),
   [privacy](https://www.mailgun.com/legal/privacy-policy/)
 * Mailjet: api.mailjet.com. [terms](https://www.mailjet.com/legal/terms/), [privacy](https://www.mailjet.com/legal/privacy-policy/)
 * Mandrill: mandrillapp.com. [terms](https://mailchimp.com/legal/terms/), [privacy](https://mailchimp.com/legal/privacy/)
 * Postmark: api.postmarkapp.com. [terms](https://postmarkapp.com/terms-of-service),
   [privacy](https://postmarkapp.com/privacy-policy)
 * Resend: api.resend.com. [terms](https://resend.com/legal/terms-of-service), [privacy](https://resend.com/legal/privacy-policy)
 * SendGrid: api.sendgrid.com. [terms](https://www.twilio.com/en-us/legal/tos), 
   [privacy](https://www.twilio.com/en-us/legal/privacy)
 * SendLayer: console.sendlayer.com. [terms](https://sendlayer.com/terms-of-service/),
   [privacy](https://sendlayer.com/privacy-policy/)
 * SMTP.com: api.smtp.com. [terms](https://www.smtp.com/policies/terms-and-conditions/),
   [privacy](https://www.smtp.com/policies/privacy-policy/)
 * SMTP2GO: api.smtp2go.com. [terms](https://www.smtp2go.com/terms/), [privacy](https://www.smtp2go.com/privacy/)
 * SparkPost: api.sparkpost.com or api.eu.sparkpost.com. [terms](https://www.sparkpost.com/policies/tou/),
   [privacy](https://www.sparkpost.com/policies/privacy/)

**Feedback tab.** Nothing is sent until an administrator fills in the form, ticks
the consent box and presses Send feedback. The message then goes through your own
mail server to the Dualsend team at cshubham832@gmail.com and iamshubhamchaurasia@
gmail.com. It contains the rating, the message, the optional name and email, your
site address and the plugin version.

## Screenshots

[⌊The Settings tab: the sender identity and both SMTP servers, each with a passed
connection test.⌉⌊The Settings tab: the sender identity and both SMTP servers, each
with a passed connection test.⌉[

The Settings tab: the sender identity and both SMTP servers, each with a passed 
connection test.

[⌊The primary server set to API delivery, with a provider chosen and its API key
verified.⌉⌊The primary server set to API delivery, with a provider chosen and its
API key verified.⌉[

The primary server set to API delivery, with a provider chosen and its API key verified.

[⌊The Delivery and Diagnostics card and the Save Settings bar.⌉⌊The Delivery and
Diagnostics card and the Save Settings bar.⌉[

The Delivery and Diagnostics card and the Save Settings bar.

[⌊The Test tab after a test message.⌉⌊The Test tab after a test message.⌉[

The Test tab after a test message.

[⌊The Logs tab: the fallback server delivered a message after the primary server
failed.⌉⌊The Logs tab: the fallback server delivered a message after the primary
server failed.⌉[

The Logs tab: the fallback server delivered a message after the primary server failed.

[⌊The Feedback tab, which sends a rating and a message only on submit.⌉⌊The Feedback
tab, which sends a rating and a message only on submit.⌉[

The Feedback tab, which sends a rating and a message only on submit.

## Installation

 1. Install the plugin from the **Plugins** menu and activate it.
 2. Go to **Settings > Dualsend SMTP Failover**.
 3. Set the From address. It must be on a domain your provider is allowed to send for.
 4. Under **Primary SMTP Server**, enter your SMTP details, or choose **API**, pick
    your provider and paste its API key. Press **Test Connection** or **Test API Connection**.
 5. Optionally, set up the **Fallback SMTP Server** the same way.
 6. On the **Test** tab, send yourself a test message.

## FAQ

### How do background retries work?

When both servers fail, the email is queued and the page carries on at once. WP-
Cron tries it again every Retry Interval minutes (1 to 60, default 5), primary then
fallback, up to Maximum Retries times (0 to 10, default 3), then hands it to WordPress
mail. At most 100 emails wait at once; when the queue is full, or attachments exceed
10 MB, the email goes to WordPress mail at once. If your site sets `DISABLE_WP_CRON`,
run `wp-cron.php` from a real server cron job.

### What does the retry queue store, and for how long?

While an email waits, it is stored in your WordPress database, body included, which
can hold private content such as a password reset link. Attachments are copied to
a private uploads folder under random names, with an index.php and an Apache deny
rule; on nginx you can add a deny rule for the `dualsend-smtp-failover-queue` folder.
Everything is deleted once the email is delivered or handed to WordPress mail, and
when the plugin is deleted. Queued email is never sent to the plugin author. Set
Maximum Retries to 0 to store nothing.

### My host blocks SMTP ports. What do I do?

Use a provider with an API and set the connection type to **API**. API delivery 
runs over HTTPS, which is not blocked.

### Where are my passwords stored?

In the WordPress options table, readable only by users who can manage settings. 
They are never sent back to the browser and are masked in the debug log. Keep API
keys scoped to sending only.

### Why did my message land in spam?

Usually the From address does not match a domain your provider may send for. Set
up SPF, DKIM and DMARC with your provider and use a From address on that domain.

### Can I keep another SMTP plugin active?

Only one plugin sends your email. While Dualsend SMTP Failover has a delivery route,
it handles `wp_mail()` first, so the other plugin’s mail settings are not used. 
The settings page tells you when another one is active.

### Will it change the sender set by other plugins?

No. A plugin that sets its own From address keeps it, unless you switch on **Override
other plugins**. Until a delivery route is set up, no sender is changed.

## Reviews

There are no reviews for this plugin.

## Contributors & Developers

“Dualsend SMTP Failover” is open source software. The following people have contributed
to this plugin.

Contributors

 *   [ Shubham ](https://profiles.wordpress.org/cshubh832/)

[Translate “Dualsend SMTP Failover” into your language.](https://translate.wordpress.org/projects/wp-plugins/dualsend-smtp-failover)

### Interested in development?

[Browse the code](https://plugins.trac.wordpress.org/browser/dualsend-smtp-failover/),
check out the [SVN repository](https://plugins.svn.wordpress.org/dualsend-smtp-failover/),
or subscribe to the [development log](https://plugins.trac.wordpress.org/log/dualsend-smtp-failover/)
by [RSS](https://plugins.trac.wordpress.org/log/dualsend-smtp-failover/?limit=100&mode=stop_on_copy&format=rss).

## Changelog

#### 1.1.7

 * Changed: the install reports question is shorter, with the full details one click
   away, and also appears right after you activate the plugin, on a single site.
   Nothing is sent until an administrator clicks Allow. No change to how email is
   sent.

#### 1.1.6

 * Changed: the install reports question also shows on the Dashboard and the Plugins
   screen, with Not now to hide it.

#### 1.1.5

 * Changed: clearer Encryption choices: TLS (port 587), SSL (port 465) or None.
 * New: optional install reports. Nothing is sent unless an administrator clicks
   Allow.
 * Fixed: a cache could show an older settings design after an update.

#### 1.1.3

 * Changed: a refreshed, more colorful settings design with bundled fonts.
 * Fixed: provider tiles in API mode.

#### 1.1.2

 * Fixed: the settings page keeps its design when another plugin or the theme removes
   or renames admin stylesheets.

#### 1.1.1

 * Changed: the admin stylesheet and script now live in the assets folder.

#### 1.1.0

 * Changed: the primary server, the fallback server and the delivery options are
   now on one Settings tab.
 * New: immediate failover, and Test Connection that checks the login without sending.
 * Added background retries. Privacy: a queued email is kept on your site only until
   it is delivered or given up.
 * New: Cc, Bcc, Reply-To, attachments and embedded images over every provider API,
   a Feedback tab and developer hooks.
 * Fixed: the debug log records no message body.

## Meta

 *  Version **1.1.7**
 *  Last updated **2 days ago**
 *  Active installations **Fewer than 10**
 *  WordPress version ** 6.0 or higher **
 *  Tested up to **7.1.3**
 *  PHP version ** 7.4 or higher **
 *  Language
 * [English (US)](https://wordpress.org/plugins/dualsend-smtp-failover/)
 * Tags
 * [deliverability](https://mfe.wordpress.org/plugins/tags/deliverability/)[email](https://mfe.wordpress.org/plugins/tags/email/)
   [mail](https://mfe.wordpress.org/plugins/tags/mail/)[smtp](https://mfe.wordpress.org/plugins/tags/smtp/)
   [wp-mail](https://mfe.wordpress.org/plugins/tags/wp-mail/)
 *  [Advanced View](https://mfe.wordpress.org/plugins/dualsend-smtp-failover/advanced/)

## Ratings

No reviews have been submitted yet.

[Your review](https://wordpress.org/support/plugin/dualsend-smtp-failover/reviews/#new-post)

[See all reviews](https://wordpress.org/support/plugin/dualsend-smtp-failover/reviews/)

## Contributors

 *   [ Shubham ](https://profiles.wordpress.org/cshubh832/)

## Support

Got something to say? Need help?

 [View support forum](https://wordpress.org/support/plugin/dualsend-smtp-failover/)