Cloudflare guide · Updated October 2026
Cloudflare Email Sending: Pricing and Setup
Cloudflare Email Sending delivers email from your own domain through Cloudflare. It is included in the Workers Paid plan with 3,000 emails a month, then $0.35 per 1,000. Onboard the domain in the Cloudflare dashboard, and send from a Worker's send_email binding, or from any app over HTTP with MarkRelay.
What it costs
| Emails sent per month | Cloudflare per month |
|---|---|
| 1,000 | $5 |
| 3,000 | $5 |
| 10,000 | $7.45 |
| 50,000 | $21.45 |
| 100,000 | $38.95 |
| 500,000 | $178.95 |
| 1,000,000 | $353.95 |
Workers Paid minimum ($5) plus sending beyond the included 3,000. Receiving through Email Routing is free. Checked October 18, 2026 on Cloudflare's pricing page. For MarkRelay's license on top, see what MarkRelay costs to run.
Compare with Resend, Amazon SES and Postmark
Move the slider to see what your monthly volume costs on each. For receiving, marketing email and setup, see the full comparison.
20,000
Cloudflare Email Sending
$10.95/mo
Workers Paid $5 incl. 3,000
Resend
$20/mo
Cheapest Free, Pro or Scale plan
Amazon SES
$2/mo
Cheapest at this volume
Postmark
$29.50/mo
Pro plan
Sending only, in USD, from each provider's public pricing page, checked October 18, 2026. Excludes dedicated IPs, attachment data and taxes. Receiving through Cloudflare Email Routing is free.
What you need
- A domain on Cloudflare DNS. The Free plan is enough for DNS; you keep your registrar.
- The Cloudflare account on the Workers Paid plan.
- Something that sends: a Worker you write, or MarkRelay.
Onboard your domain
- In the Cloudflare dashboard, open Compute → Email Service → Email Sending and select Onboard Domain.
- Choose the domain and select Done. Cloudflare adds the DNS records for you.
- Add a DMARC record if the domain has none; see Deliverability.
Two ways to send
From a Worker
Add a send_email binding to your Worker and call it from your code. This suits mail your Worker produces itself; you handle retries, logs and anything that should land in an inbox.
From any app, over HTTP, with MarkRelay
MarkRelay runs in your Cloudflare account and exposes the same sending path as an authenticated HTTP API, so a backend, a cron job or an AI agent anywhere can send with a personal API key. Sent mail is saved in the mailbox's Sent folder, replies come back to the same mailbox, and your team can read both in webmail.
curl -X POST "$MARKRELAY_API_URL/emails/send" \
-H "Authorization: Bearer $MARKRELAY_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"from": "Acme <hello@yourdomain.com>",
"to": "customer@example.com",
"subject": "Your order has shipped",
"html": "<p>It is on its way.</p>"
}'MARKRELAY_API_URL is your deployment's API endpoint, ending in /openapi/v1. Each message can have up to 50 To, Cc and Bcc recipients and be up to 5 MiB, with up to 20 attachments totalling 3 MiB; larger files are sent as links. See the Email API for every endpoint.
Track delivery
Cloudflare can publish delivery, bounce and complaint events for each domain to a queue. Subscribe the domain's Email Sending events to the MarkRelay events queue and broadcast results update per recipient; hard bounces and complaints are suppressed automatically. See Track broadcast delivery.
Common questions
How much does Cloudflare Email Sending cost?
It is included in the Workers Paid plan ($5/month minimum) with 3,000 emails a month, then $0.35 per 1,000. Hard bounces count toward the quota; messages rejected by the API, including suppressed addresses, do not.
How much do 1 million emails a month cost on Cloudflare?
About $353.95: the $5 Workers Paid minimum covers the first 3,000, and the other 997,000 are $0.35 per 1,000. The same volume is about $650 on Resend's Scale plan and $100 on Amazon SES.
Is Cloudflare Email Sending cheaper than Resend or Amazon SES?
Cheaper than Resend and Postmark above Resend's free 3,000 emails, except just under Resend's plan limits, around 50,000 and 100,000 a month, where its $20 and $35 Pro plans come out slightly lower. Amazon SES, at $0.10 per 1,000, is cheaper than Cloudflare at every volume, but receiving, DNS setup and list management are left to you.
Can I send on the Workers Free plan?
Only to destination addresses you have verified in your account. Those sends are free on every plan and do not count toward the quota. Sending to any other recipient needs Workers Paid.
Can I send from several domains?
Yes. Onboard each domain to Email Sending; Cloudflare adds its DNS records. MarkRelay then lets you send from any mailbox on any of those domains.
Can I send from an app that doesn't run on Cloudflare?
Not with the Worker binding alone, which only works inside a Worker. MarkRelay puts an authenticated HTTP API in front of it, so any app in any language can send through Email Sending from anywhere.
Can I send newsletters through Email Sending?
MarkRelay Broadcasts send newsletters and campaigns through Email Sending, with one-click unsubscribe and a suppression list built in. You are responsible for consent and for following Cloudflare's Email Service terms.
Related: Reply from a Cloudflare Email Routing address and the MarkRelay email API.
