If you have ever set up transactional email for a web application, you know the ritual. Pick a provider — Mailgun, Postmark, SendGrid, Brevo. Create an account. Verify your domain by adding SPF, DKIM, and DMARC records one by one. Wait for DNS propagation. Submit your sending domain for review. Wait again. Hope your first emails do not land in spam while your sender reputation is building. Pay a monthly fee that scales uncomfortably with your user base.
It is the most reliably tedious part of launching any application that sends email which is every application.
Cloudflare wants to make the whole process as simple as adding a binding to a Worker and calling send.
What Cloudflare Email Service Is
Announced in September 2025 and currently in private beta, Cloudflare Email Service is a native transactional email capability built directly into Cloudflare Workers. No third-party SMTP relay. No separate API keys. No manual DNS record configuration. You declare an email binding in your Worker configuration, call send, and Cloudflare handles the rest including automatically configuring the SPF, DKIM, and DMARC records that tell receiving mail servers your emails are legitimate.
The code to send a transactional email from a Worker looks like this:
That is the entire implementation for a basic transactional email. No initialising an SDK, no managing API credentials, no handling SMTP connection errors. The binding is declared once in your wrangler.jsonc:
And from that point, env.SEND_EMAIL.send() is available anywhere in your Worker.
This Is Different From What Workers Could Already Do
It is worth being precise here because Cloudflare already had an email-related Workers feature, and the two are easily confused.
What existed before: The send_email binding in Email Routing allowed a Worker to send emails to verified destination addresses — addresses you had already confirmed in your Cloudflare Email Routing setup. This was useful for internal notifications and alerts but had a hard limitation: you could only send to pre-verified addresses you controlled. You could not send a welcome email to a new user signing up to your app, because their address is not pre-verified in your Cloudflare dashboard.
What Cloudflare Email Service adds: The new Email Sending capability removes that restriction entirely. You can send to any email address — customers, users, anyone — making it a genuine transactional email service rather than just an internal notification tool. This is what replaces the need for Brevo, Mailgun, or Postmark.
The screenshot below ( taken from the Cloudflare dashboard ) confirms the feature is now appearing for accounts, with a "Join the Waiting List" prompt under Email Sending (Beta). The button text "Already joined to the waiting list!" confirms waitlist access has been secured.

React Email Works With It Out of the Box
For developers already using React Email to build HTML email templates, the integration is straightforward. Cloudflare explicitly supports it:
Your existing React Email templates (the ones you may have been rendering and passing to Brevo or Resend ) port directly. No template rewriting required.
The Full Picture: Inbound and Outbound Together
What makes Cloudflare's approach genuinely different from a standalone email API is the combination of inbound and outbound in a single platform.
Email Routing ( Cloudflare's existing free inbound email product ) lets you receive emails at custom addresses on your domain and process them in a Worker. Email Sending now closes the loop on the outbound side. Together, they enable workflows that previously required stitching together multiple services:
Support ticket automation: A user emails [email protected]. A Worker receives it via Email Routing, parses the content, creates a ticket in your system, and uses Email Sending to reply with a ticket confirmation, all within one Worker, with no external services involved.
Order notifications: A payment webhook triggers a Worker, which sends an order confirmation email via Email Sending and simultaneously logs the transaction to R2. No Brevo integration, no SendGrid webhook, no third-party dependency.
AI-powered email processing: A Worker receives an email, runs it through Workers AI for classification or summarisation, then uses Email Sending to route the response or trigger follow-up actions. Cloudflare's own blog gives the example of flagging security events, summarising support requests, and generating automatic responses, all within the same Worker.
The ability to handle both directions in a single codebase, with a single platform's observability tools, is a meaningful simplification compared to the current multi-service setup most developers manage.
SMTP and REST API Support for Non-Workers Integrations
Not every application is built on Workers. Cloudflare has confirmed that Email Service will support both REST API and SMTP access for external applications meaning you can use it as a drop-in replacement for your current email provider even in applications that are not on the Cloudflare stack.
If you are running a Next.js app on Vercel, a Laravel API on a VPS, or a Python backend anywhere, you will be able to point your SMTP configuration at Cloudflare Email Service instead of Mailgun or Postmark and send from your domain the same way you do today, just without the separate account, separate billing, and separate DNS configuration.
What We Do Not Know Yet: Pricing
Cloudflare has been deliberately vague on pricing, saying only that Email Sending will require a paid Workers subscription and will be charged based on messages sent, with final pricing to be announced before billing begins.
The Workers Paid plan is $5 per month, that is the baseline. Per-message pricing beyond that is unconfirmed.
Given Cloudflare's established pattern, R2 storage undercut AWS S3 significantly, Pages undercut Vercel on bandwidth costs, Workers undercut AWS Lambda on execution pricing, the expectation is competitive pricing. For context, current market rates for transactional email are roughly:
Provider | Free Tier | Paid Entry |
|---|---|---|
Brevo | 300 emails/day | ~$9/month for 5,000/month |
Mailgun | 100 emails/day (trial) | $35/month for 50,000 |
Postmark | 100 emails/month | $15/month for 10,000 |
Resend | 3,000 emails/month | $20/month for 50,000 |
Cloudflare | Unknown — waitlist | Unknown — per message |
If Cloudflare prices Email Service at or below Resend's rates ( which itself undercut the market when it launched ) the combination of native Workers integration, automatic DNS configuration, and competitive pricing makes a strong case for switching once GA drops.
Current Status and What to Do Right Now
Cloudflare Email Service is in private beta. The waitlist is open through the Cloudflare dashboard, navigate to Email in the left sidebar and look for Email Sending (Beta). If you see the "Join the Waiting list" prompt, just click it. There is no announced general availability date yet.
For your current projects that need transactional email today, the practical solution remains the Cloudflare + Brevo + Gmail setup. Our guide — How to Send and Receive Professional Emails via Gmail for Free — walks through the complete setup: Cloudflare Email Routing handles inbound email to your domain, Brevo provides the free SMTP layer for sending, and Gmail becomes your interface. Brevo's free tier allows 300 emails per day, more than sufficient for most small applications and personal projects.
When Cloudflare Email Service reaches general availability and pricing is confirmed, that guide will be updated with the native Cloudflare path as the primary recommendation. Until then, the Brevo route is tested, free, and works today.
Why This Matters for Developers in Kenya
The transactional email problem is not just a technical inconvenience, it is a friction point that affects whether small applications and startups can afford to operate professionally.
Mailgun and Postmark charge in USD. At current exchange rates, Mailgun's entry plan at $35 per month is approximately Ksh 4,500, a meaningful monthly expense for a solo developer or early-stage startup. Brevo's free tier is generous but has limitations that push growing projects toward paid plans sooner than expected.
A Cloudflare-native solution billed through the same account that already manages your DNS, CDN, and Workers removes a billing relationship, a credential management headache, and a DNS configuration exercise from every new project. For developers building on the Cloudflare stack ( and as we have covered extensively, that stack is increasingly the default for African developers ) this is the email piece that has been missing.
The waitlist is open. GA is coming. The pricing will determine how quickly it becomes the default recommendation but the direction is clear.
Join the Cloudflare Email Service waitlist through your Cloudflare dashboard under Email → Email Sending (Beta). For sending transactional emails today, follow our Cloudflare + Brevo + Gmail guide.
Comments