600,000+
September 27, 2026
January 18, 2021
Are your WordPress emails not sending, landing in spam, or failing silently? FluentSMTP is a free WordPress SMTP plugin that fixes email deliverability by routing every wp_mail() call through the email service you choose: Gmail, Google Workspace, Amazon SES, SendGrid, Mailgun, Cloudflare Email, toSend, Postmark, Brevo (Sendinblue), SparkPost, Netcore, Elastic Email, SMTP2GO, Outlook / Office 365, Zoho, or any SMTP host.
FluentSMTP talks to each provider’s own API rather than only SMTP, so your transactional and marketing email goes out quickly and lands in the inbox. Set your From name and email, turn on email logging, add failure alerts, and route different senders to different providers, all from one screen.
Connect as many email services as you want, and FluentSMTP routes each email to the right one based on its From address.
FluentSMTP is 100% free and open source, and it always will be. There is no “pro” version, no premium add-ons, no locked features, no email capture wall, no nagging upgrade prompts, no feature limits, and no paid tier. Every integration listed here, from Amazon SES, Gmail and Outlook to SendGrid, Mailgun, Cloudflare, toSend, Postmark, Brevo and SparkPost, is fully available at no cost.
You will never have to pay a cent to use any feature of FluentSMTP. We have pledged this as part of our “Five for the Future” participation, an initiative started by the WordPress Foundation.
Our parent company WPManageNinja LLC builds commercial products for WordPress businesses and runs a stable, profitable business on those, which means FluentSMTP is our way of giving back to the WordPress community, not a funnel. 👉 Read why it’s 100% free (always) 👈
FluentSMTP is built for speed, reliability and scale.
Most importantly, this plugin is free and will always be free.
👉 Read why it’s 100% free (always) 👈
Like any WP mail SMTP plugin, FluentSMTP replaces the WordPress wp_mail() function and hands every email to the service you connected, using that service’s own API where one exists, or the SMTP host, port and credentials you gave it for a plain SMTP connection. Every plugin and theme that sends email through wp_mail() is covered, with nothing to change on their side.
FluentSMTP logs every email your WordPress site sends, so you can check at any time what went out, what did not, and what the mail server said about it. Failed emails can be retried, and any logged email can be resent.
The Amazon SES connection sends your WordPress email through Amazon’s low-cost, high-deliverability infrastructure, set up in a couple of minutes. It uses Amazon’s current SES API and supports every SES region, including the EU Sovereign Cloud.
The SES client reuses its cURL connection across sends, so a burst of emails does not pay for a new handshake each time.
Connect your Gmail or Google Workspace account and send WordPress email over Google’s API rather than Gmail SMTP. The connection uses OAuth, so there is no app password to create or store.
SendGrid runs a globally distributed sending platform, and the SendGrid API connection takes about a minute to set up.
Read the SendGrid connection documentation
Mailgun is a leading email sending service trusted by 225,000+ businesses. You can rely on their globally distributed, cloud-based architecture for sending your WordPress emails.
The Mailgun connection takes about a minute to set up, and it uses their API rather than SMTP.
Read the Mailgun connection documentation
Brevo is a platform for growing businesses with a strong transactional email service. They serve more than 80,000 companies around the world and send millions of emails every day.
If you use Brevo, FluentSMTP connects to its API and sends your WordPress email through it.
Read the Brevo connection documentation
Netcore is a complete email sending partner with a user-friendly dashboard, statistics and real-time delivery information.
The Netcore connection takes about a minute to set up, and it uses their API rather than SMTP.
Read the Netcore API connection documentation
SparkPost is a reliable email sending service with detailed analytics. The SparkPost connection takes about a minute to set up.
Read the SparkPost connection documentation
Postmark is a highly reliable transactional email service, known for fast delivery and top-tier inbox placement. FluentSMTP connects to Postmark’s Server API directly: paste your Server Token, pick a Message Stream, and your transactional email goes through Postmark, with attachments, CC/BCC, Reply-To and custom headers all carried across.
Read the Postmark connection documentation
Elastic Email handles both transactional and marketing mail, with per-message statistics in its dashboard. FluentSMTP uses their official API.
Connect your Outlook.com, Office 365 or Microsoft 365 account and send WordPress email over Microsoft’s Graph API. The connection uses OAuth2, so no password is stored on your site, and single-tenant Entra app registrations are supported.
Read the documentation for connecting Office 365 email with WordPress
SMTP2GO handles both transactional and marketing mail, with per-message statistics in its dashboard. FluentSMTP uses their official API.
Send WordPress emails through Cloudflare Email Sending using their native REST API. If your domain is already on Cloudflare, you can send transactional email directly from Cloudflare’s edge network, fast, reliable, and with built-in SPF/DKIM/DMARC. FluentSMTP handles the full request shape, including attachments, CC/BCC, Reply-To, and custom headers. The API token is checked when you save it and again on the connection screen, so a bad token is reported before an email needs it.
toSend is a modern transactional email service with a simple API, per-domain analytics, and fast delivery. FluentSMTP ships a native toSend integration: paste your API key, set a verified From address, and you’re sending in under a minute. Failed sends are logged with full payloads so you can resend or debug without leaving WordPress.
Read the toSend WordPress setup guide
FluentSMTP works with any service that offers an SMTP connection, including your web host’s mail server, Gmail SMTP, Yahoo, Outlook.com, Zoho Mail and Yandex Mail.
You can set the following options:
Read the SMTP connection documentation
Add as many email connections as you want. FluentSMTP routes each email to the right one based on its From address.
Route your transactional emails through one connection and your marketing emails through another, or set a fallback connection that takes over when the primary one fails.
Want to know how much mail your site is sending, and what it is? The email log lists every email, with charts of the daily totals, and you can resend any of them at any time. It is useful for keeping a record, auditing what goes out, and debugging while you build.
You can turn logging off, in which case only failed emails are recorded. Logs live in their own database table, so your WordPress tables stay as they are.
An expired OAuth token or a removed API key stays invisible until the first email that needed it fails. FluentSMTP checks every connection once a day, shows failures on the dashboard, and notifies you over your configured notification channels the moment a connection starts failing. Only newly broken connections notify, so a known issue will not nag you every day.
Manage FluentSMTP from the terminal, which matters most when the emails you need are the ones getting you into the admin:
wp fluent-smtp test – send a test email through any connectionwp fluent-smtp health – check every connectionwp fluent-smtp stats – sent and failed countswp fluent-smtp prune-logs – clean up old email logsConnect Telegram, Slack, Discord or Pushover, as many as you want at once, and FluentSMTP messages you there the moment an email fails to send, so you find out before your customers do.
FluentSMTP is built with security and scale in mind, and gives you several ways to keep your credentials and your sending safe.
FluentSMTP can convert your HTML email to plain text as it sends, and deliver both parts as a multipart message. This helps deliverability and your spam score. Turn it on in the settings.
FluentSMTP is built by WPManageNinja LLC, the team behind Fluent Forms, FluentCRM and Ninja Tables.
FluentSMTP is free and open source, and we will never release a pro version. That is not a feature gap: everything the plugin does is in the free version. We wrote an article about why we made it and where we are taking it.
The full source code is on GitHub, and contributions are welcome.
👉 View on GitHub 👈
Moving from WP Mail SMTP by WPForms takes a few seconds.
Moving from Easy WP SMTP takes a few seconds.
If you like this plugin, then consider checking out our other plugins:
By default WordPress sends email with the PHP mail() function on your web server, which is often unauthenticated, rate limited, or blocked outright by the host. Mailbox providers then reject or junk it. FluentSMTP sends your email through a proper email service or SMTP server instead, authenticated with your own domain, so it is delivered and lands in the inbox.
Yes. That is what the plugin is for: it takes over wp_mail() and sends through the SMTP server or email service you connect.
Yes. There is no pro version, no paid add-on and no feature limit. Every provider and every feature is in the free plugin, and it will stay that way.
Yes. Add your SES access key and secret key, and FluentSMTP sends through the Amazon SES API rather than SMTP.
Yes. Connect your Google account with OAuth and FluentSMTP sends through the Gmail API. You can also use Gmail’s SMTP server with an app password if you prefer.
Yes. Connect your Microsoft account with OAuth2 and FluentSMTP sends through Microsoft’s Graph API. Single-tenant Entra app registrations are supported.
Yes. When you create a connection you choose where its credentials are kept: in the database, or in your wp-config.php file, which is what we recommend.
Yes. FluentSMTP connects to SendGrid over their API, which is faster than their SMTP endpoint. If you would rather use SMTP, you can set that up instead.
Yes. FluentSMTP connects to Mailgun with an API key, which is faster than their SMTP endpoint. If you would rather use SMTP, you can set that up instead.
Yes. FluentSMTP connects to Brevo (formerly Sendinblue) with an API key. If you would rather use SMTP, you can set that up instead.
Yes. FluentSMTP connects to SparkPost with an API key.
Yes. FluentSMTP connects to Netcore (formerly Pepipost) with an API key.
Yes. FluentSMTP ships a native Cloudflare Email Sending integration. Add your Cloudflare Account ID and an API token with Email Sending permissions, and the plugin will send through Cloudflare’s REST API (including attachments, CC/BCC, Reply-To, and custom headers). The sending domain must be on Cloudflare with Email Sending enabled (SPF/DKIM/DMARC published).
Yes. FluentSMTP has a native toSend integration. Create an API key in the toSend dashboard, add your verified sending domain, paste the key into FluentSMTP, and your WordPress emails will be delivered through toSend.
FluentSMTP checks every connection once a day. If one starts failing, from an expired OAuth token or a revoked API key, it is flagged on the dashboard and sent to your configured notification channels (Telegram, Slack, Discord or Pushover). You can also run wp fluent-smtp health from the command line at any time.
Yes. wp fluent-smtp test sends a test email, wp fluent-smtp health checks your connections, wp fluent-smtp stats shows sent and failed counts, and wp fluent-smtp prune-logs deletes old logs.
Please check our GitHub repository. Pull requests are welcome.
Please submit an issue in our support portal. If you are a developer, please create a GitHub issue.
We use Patchstack to manage security reports. Please report it on our Patchstack page.
phpmailer_init hookfluent_mail/manage_capability filter to change the required admin capabilitywp_mail_embed_args filterwp_mail() replacement to match WordPress 7.0 coreFLUENTMAIL_SIMULATE_EMAILS to simulate emails programmatically| Version | Download | Type |
|---|---|---|
| 2.4.1 | Download | Stable |
| 2.4.0 | Download | Stable |
| 2.3.1 | Download | Stable |
| 2.3.0 | Download | Stable |
| 2.2.95 | Download | Stable |
| 2.2.92 | Download | Stable |
| 2.2.90 | Download | Stable |
| 2.2.83 | Download | Stable |
| 2.2.82 | Download | Stable |
| 2.2.81 | Download | Stable |
| 2.2.80 | Download | Stable |
| 2.2.73 | Download | Stable |
| 2.2.72 | Download | Stable |
| 2.2.71 | Download | Stable |
| 2.2.7 | Download | Stable |
| 2.2.6 | Download | Stable |
| 2.2.5 | Download | Stable |
| 2.2.4 | Download | Stable |
| 2.2.3 | Download | Stable |
| 2.2.2 | Download | Stable |
| 2.2.1 | Download | Stable |
| 2.2.0 | Download | Stable |
| 2.1.2 | Download | Stable |
| 2.1.1 | Download | Stable |
| 2.1.0 | Download | Stable |
| 2.0.2 | Download | Stable |
| 2.0.1 | Download | Stable |
| 2.0.0 | Download | Stable |
| 1.2.0 | Download | Stable |
| 1.1.1 | Download | Stable |
| 1.1.0 | Download | Stable |
| 1.0.1 | Download | Stable |
| Development | Download | Trunk |