On Page Navigation

Cloudflare Email SMTP Plugin For WordPress Deliverability Email Logging Sender Control

MountDev Cloudflare Email SMTP is a free plugin that sends every WordPress email through Cloudflare Email Service instead of your web server. It replaces wp_mail, so core notices and plugin messages both leave over an authenticated connection. You get a full send log, a from name and from address you control, and a test send that confirms the setup before a customer discovers it is broken. The plugin is free. Cloudflare's sending service is not.

Cascadia engineer writing WordPress code across dual monitors.

Small plugin, narrow job

What makes this Cloudflare SMTP plugin different

Most SMTP plugins support twenty providers at once, and the settings screen shows it. This one connects to Cloudflare Email Service and nothing else, so there is no provider picker to wade through and the fields you fill in are the ones Cloudflare actually asks for. It is free on the Plugin Directory, and nothing is held back for a paid tier. Here is what that looks like in practice.

How it compares

This plugin vs a general purpose SMTP plugin

A general SMTP plugin supports every provider at once, and that is a real strength while you are still choosing one. Once you have picked Cloudflare, the same breadth becomes configuration you will never use. Here is where the two approaches part ways.

Cloudflare setup vs generic SMTP form

We ask for the specific things Cloudflare requires, down to the token username it expects. A generic form gives you a host, a port and a password field, then leaves you to work out for yourself what Cloudflare wants in each one.

Free in full vs free tier with upsell

Every feature is in the free plugin. Elsewhere the logging, or the second sender, or the backup route sits behind a paid license, which makes the free version you installed a trial of the one you actually wanted.

Log in your database vs external dashboard

Your send history stays in your own WordPress install, where you can query it like any other table. Push that log to a hosted dashboard, as several competitors do, and you have picked up another account, another login, and a copy of your email metadata on somebody else's server.

Retention setting vs unbounded growth

You set how long log rows survive. Without a retention control the table simply grows, and the way you usually find out is a database backup that has doubled in size on the busiest site you run.

Test send built in vs deploy and hope

A test send from the settings screen surfaces a bad token or an un-onboarded domain while you are still sitting in that screen. Without one, you find out later, from a customer whose password reset never came.

Named requirements vs vague promises

We say up front that nothing sends until you have a Workers Paid plan and an onboarded domain. Gloss over a provider prerequisite and you end up debugging WordPress while the actual problem is sitting on your Cloudflare account.

Who this fits

Who this plugin is built for

This is a narrow tool for people who have already decided to send through Cloudflare. If you are still comparing providers, install a multi-provider plugin instead. It is the better fit for where you are, and this one will only get in your way. But if your DNS and your Workers already live on Cloudflare, keeping email there takes one more vendor out of the stack.

The process

How the plugin sends your WordPress email

Three steps, and only the first one takes any real thought. Get the Cloudflare side ready, connect the plugin, then confirm it with a test send. After that WordPress carries on exactly as before, except that everything it sends now leaves through Cloudflare.

1

Get your Cloudflare account ready

Before WordPress enters the picture you need a Cloudflare account on the Workers Paid plan, the domain you will send from onboarded for Email Sending, and an API token with permission to send. None of that is something the plugin can do on your behalf, which is also why most setup problems start here. Have the token in hand before you move on.

2

Install and connect the plugin

Install from the Plugin Directory, activate, and open the settings screen. Point it at Cloudflare's SMTP host on port 465, use api_token as the username, and paste your token as the password. Then set the from address and from name you want the whole site to use, and save. Nothing else in WordPress has to change.

3

Run a test send and check the log

Send a test message from the settings screen. If it arrives, wp_mail is going through Cloudflare and every plugin on the site inherits that immediately. If it does not, the error names the culprit: the token, the domain, or the from address. Either way, the log starts recording from that point on.

What the plugin costs

Pricing

Cloudflare Email SMTP

Plan

Free
/free on the WordPress Plugin Directory
Requires a paid Cloudflare plan to send

DETAILS

The plugin is free, with no paid tier and no license key. Sending is not free, and that part belongs to Cloudflare. Email Sending needs a Workers Paid plan, and the domain you send from has to be onboarded for Email Sending on the account that owns your API token. If you already run Workers Paid, there is nothing further to buy.

Testimonials

Here's what others had to say

Everything in the plugin

What the Cloudflare Email SMTP plugin includes

This is the icon that represents WordPress updates.Cascadia Web Services logo

Replaces wp_mail Completely

Every email WordPress generates leaves through Cloudflare instead of your server's PHP mail function. Password resets, order receipts, form notifications, plugin alerts: all of it takes the same authenticated route. There is no quiet fallback to an unauthenticated send that you only discover months later.
This is the icon that represents WordPress updates.Cascadia Web Services logo

Authenticated Cloudflare SMTP

The plugin connects to smtp.mx.cloudflare.net on port 465 and authenticates with your Cloudflare API token. Configure that connection once in WordPress and you are done with it. From then on every message goes out against your own Cloudflare account, not against whatever your host happens to permit.
This is the icon that represents WordPress updates.Cascadia Web Services logo

Custom From Address

Set the address your site sends from once, for the whole site, with no theme files to edit and no filter to drop into functions.php. The value applies to core WordPress mail and to anything else that goes through wp_mail. Your sender reads the same everywhere it appears.
This is the icon that represents WordPress updates.Cascadia Web Services logo

Custom From Name

This is the display name recipients see in their inbox, and WordPress fills it in with a generic default that rarely matches anyone's brand. Most plugins then inherit that default without asking. One setting here corrects the name on every message your site produces.
This is the icon that represents WordPress updates.Cascadia Web Services logo

Test Send And Verification

Send a test message from the settings screen and read the result on the spot. A wrong token, a domain that has not been onboarded for sending, a from address the account will not permit: each of those surfaces right there during setup, and not weeks later from a customer whose receipt never arrived.
This is the icon that represents WordPress updates.Cascadia Web Services logo

Full Email Log

Every message the site sends is recorded with recipient, subject, timestamp and delivery status. So when somebody tells you they never got anything, you open the log and get an answer. The alternative is guessing at a mail queue you cannot see.
This is the icon that represents WordPress updates.Cascadia Web Services logo

Log Retention Controls

Choose how long entries stay before the plugin clears them out. A busy store generates a lot of rows, and the log lives in your own database, so the setting is really a trade: enough history to settle a dispute, without a table that grows unchecked.

Questions we get asked about this plugin

Frequently asked questions
What does the Cloudflare Email SMTP plugin actually do?
It makes WordPress send its email through Cloudflare Email Service instead of your web server. The plugin replaces the wp_mail function, so core notifications and anything a plugin sends both leave over an authenticated SMTP connection to Cloudflare. It also records every send in a log, lets you set the from name and from address site-wide, and gives you a test send to confirm the setup works.
Is the plugin really free?
Yes. The plugin costs nothing, has no paid tier, no license key, and no features held back behind an upgrade. You install it from the WordPress Plugin Directory the same way you install any other free plugin. What is not free is the sending service behind it, which belongs to Cloudflare rather than to us. That distinction matters enough that we cover it in the next answer.
Do I need to pay Cloudflare to use it?
Yes, on Cloudflare's side. Email Sending is available on the Cloudflare Workers Paid plan, so you need that plan on the account you send from. You also need the sending domain onboarded for Email Sending on the account that owns your API token. The plugin cannot work around either requirement. If you already run Workers Paid, there is nothing further to buy.
What is Cloudflare Email Service?
It is Cloudflare's email product for developers, combining outbound sending with inbound routing under one service. It is built for transactional mail: password resets, order confirmations, verification messages, and alerts. You can reach it from Workers using a native binding, from any platform over its REST API, or over authenticated SMTP. This plugin uses the SMTP route, which is what lets ordinary WordPress talk to it without custom code.
How is this different from Cloudflare Email Routing?
Email Routing handles mail coming in, forwarding messages sent to addresses on your domain somewhere else. Email Sending handles mail going out. They sit under the same Cloudflare Email Service umbrella but solve opposite problems. This plugin is concerned only with outbound mail from your WordPress site, so Routing is not required, and switching it on will not make your site's email start sending.
What do I need before I install it?
Three things. A Cloudflare account on the Workers Paid plan, the domain you intend to send from onboarded for Email Sending on that account, and a Cloudflare API token with permission to send. Have those ready before you install, because the plugin's job is to use them, not to create them. Setup inside WordPress takes a couple of minutes once the token is in hand.
How do I connect the plugin to Cloudflare?
Install and activate the plugin, then open its settings screen. Point it at Cloudflare's SMTP host on port 465, use api_token as the username, and paste your Cloudflare API token as the password. Set the from address and from name you want the site to use, save, then run the test send. If the test message arrives, WordPress is sending through Cloudflare and you are done.
Will it cover emails from WooCommerce, Contact Form 7, and other plugins?
Yes, as long as the plugin sends through wp_mail, which the overwhelming majority do. Because this plugin replaces wp_mail itself rather than hooking one plugin at a time, anything built on the standard WordPress mail function is covered the moment you activate it. The rare exception is a plugin that opens its own connection and bypasses wp_mail entirely. Those are uncommon.
Why are my WordPress emails not sending in the first place?
Most shared hosts either block outbound mail or send it unauthenticated from an IP with no reputation attached. Mailbox providers see a message claiming to come from your domain with nothing backing that claim, so they drop it or file it as spam. Nothing errors along the way, which is why the site looks fine while receipts and password resets never land.
What does the email log record?
Each entry holds the recipient, the subject, the time the message went out, and the delivery status the send returned. That covers the question you usually have, which is whether the message left at all and when. If a customer says a receipt never arrived, you check the log first and know straight away whether to look at your site or at their inbox.
How long are log entries kept?
For as long as you tell the plugin to keep them. Retention is a setting, so you decide how much history is worth holding on to. A low volume site can keep months without noticing. A busy store sending hundreds of messages a day will want a shorter window, because the log lives in your database and an unbounded table gets expensive to carry through every backup.
Can I change the from name and from address?
Yes, both, and they apply across the whole site. WordPress ships with a generic default sender that rarely matches anyone's brand, and plugins tend to inherit it without asking. Setting the from address and from name in one place corrects every message the site produces, with no theme edits and no snippet in functions.php waiting to be wiped out by the next update.
How do I know the connection actually works?
Use the test send on the settings screen. It pushes a real message through the connection you configured and reports back what happened. A wrong token, a domain that has not been onboarded for sending, or a from address the account is not permitted to use will all surface right there during setup. That beats finding out when a customer tells you their receipt never came.
Is Cloudflare Email Service production ready?
Cloudflare Email Service is still in beta, and Cloudflare notes that features and APIs may change before general availability. Email Sending reached public beta in April 2026. Plenty of sites run it in production, but you should make that decision knowingly rather than assume it carries the same stability guarantee as a mature product. The email log helps, since you can watch real delivery behaviour instead of guessing.
Where do I get the plugin, and who supports it?
The plugin is published on the WordPress Plugin Directory, so you can install it straight from the Plugins screen in your own admin without downloading a file. Questions about the plugin itself come to us. Questions about your Cloudflare account, your plan, domain onboarding, or API tokens go to Cloudflare, since we cannot see or change anything inside your account.
​Contact

Ask Us Anything

We’d love to hear from you!