How to Send Email From Your Own Domain for Free: Cloudflare + Brevo (2026)
A small software team in Bangkok may need [email protected] for partnership replies, contact forms, invoices, and product notifications, but paying for another mailbox before the channel has traffic is hard to justify. The useful shortcut is to separate receiving from sending.
Quick verdict: use Cloudflare Email Routing to forward incoming mail to an inbox you already check, and use Brevo's SMTP relay or API to send authenticated mail from the custom address. Brevo currently offers 300 sends per day on its free plan, although free-plan messages include Brevo branding. This is a sensible low-volume setup, not a bulk cold-email system. Cloudflare also launched its own outbound Email Service in 2026, so compare that newer option if you are starting from zero.
No affiliate links were used in this article at publication. If Software Listing adds one later, it will be visibly disclosed and marked as sponsored.
The architecture
Incoming reply
recipient writes to [email protected]
↓
Cloudflare Email Routing
↓
your existing verified inbox
Outgoing message
your app, CRM, or automation
↓
Brevo API or SMTP
↓
recipient's inbox
Cloudflare's routing rule maps an address on your domain to a verified destination address. Brevo handles the separate job of signing and delivering outgoing mail. Keeping those jobs separate means you can receive replies without buying a hosted mailbox while still authenticating outbound messages correctly.
What this setup costs and what it does not do
| Component | Job | Free-tier reality | Main limitation |
|---|---|---|---|
| Cloudflare Email Routing | Forward incoming messages | Available on Cloudflare plans; destination must be verified | It is forwarding, not a standalone mailbox |
| Brevo transactional email | Send through API or SMTP | 300 sends per day; no time limit currently | Free mail carries Brevo branding and unused quota does not roll over |
| Your existing inbox | Read and reply to forwarded mail | Often already paid for or free | Native replies may expose the inbox address unless Send mail as is configured |
| DNS authentication | Prove that Brevo may send for the domain | DNS records cost nothing | A wrong SPF, DKIM, or DMARC record can damage delivery |
The phrase "free custom-domain email" needs a boundary. You still need to own the domain, and free allowances can change. This design avoids a separate mailbox subscription for light usage; it does not make high-volume sending free.
Step 1: route incoming mail with Cloudflare
- Put the domain's DNS on Cloudflare.
- In Compute → Email Service → Email Routing, add the inbox that should receive forwarded mail.
- Open the verification message in that destination inbox.
- Create a routing rule such as
[email protected]→ your verified destination. - Send a test from an unrelated address and confirm that it arrives.
Cloudflare supports specific routing rules, catch-all rules, plus addressing, and Workers for more advanced processing. Start with one explicit address. A catch-all receives typos and spam as well as valid mail, so it is rarely the best first setting.
Step 2: authenticate the domain in Brevo
Add the domain in Brevo's sender and domain area. Brevo will show the exact DNS records it expects. Copy the values from the dashboard rather than from a tutorial because selectors and verification tokens are account-specific.
The records normally cover three controls:
- SPF authorizes the sending service. A domain should have one SPF TXT record; merge authorized senders into it instead of publishing competing SPF records.
- DKIM gives each message a cryptographic signature that receiving servers can verify.
- DMARC tells receivers what to do when authentication or alignment fails and can send aggregate reports to an address you control.
Begin DMARC monitoring conservatively, inspect the reports, and strengthen the policy after every legitimate sender is aligned. Jumping directly to rejection can block real invoices, password resets, or support replies that still use another service.
Step 3: send through SMTP or the API
Use SMTP when an existing app only asks for a server, port, username, and password. Use the API when you control the application and want structured errors, message IDs, templates, or webhook events.
Keep the credential in an environment variable or secret manager. Never commit it to a repository, paste it into a spreadsheet, or expose it in browser-side JavaScript. Give each production system its own credential where the provider permits it, so one integration can be revoked without stopping everything.
For a no-code workflow, an automation tool such as n8n can call Brevo after a qualified form submission. A CRM such as HubSpot can hold the contact record, while a support system such as Freshworks can own replies and opt-outs. The provider sends the message; the workflow still needs consent, suppression, and error handling.
Step 4: make replying from the same address work
Forwarding alone does not automatically make your existing inbox send as [email protected]. If you want staff to reply manually from the branded address, configure the inbox provider's Send mail as feature with Brevo's SMTP credentials, then complete its verification flow.
Test the visible From address, Reply-To address, and Return-Path separately. A message can look correct in the composer while authentication alignment is still wrong underneath.
Step 5: run a real delivery test
Do not stop when a dashboard says "authenticated." Send a plain-text message and an HTML message to accounts at two different mailbox providers. Check the message headers or security details for SPF, DKIM, and DMARC results. Then reply and confirm that the response reaches the routed inbox.
| Test | Pass condition | If it fails |
|---|---|---|
| Inbound routing | Message to the custom address reaches the destination inbox | Recheck Cloudflare routing rule, destination verification, and MX records |
| SPF | Header reports SPF pass for the sending path | Merge the provider include into the single SPF record |
| DKIM | Header reports DKIM pass for the authenticated domain | Recheck selector, TXT value, and DNS propagation |
| DMARC | Header reports DMARC pass with aligned From domain | Fix SPF/DKIM alignment before tightening policy |
| Reply loop | Reply reaches the original sender and returns to the routed inbox | Inspect From, Reply-To, send-as settings, and forwarding rule |
Which providers have an affiliate program?
Affiliate availability is not the same as product fit. A higher commission does not make a marketing suite the right transactional sender. These statuses were checked against vendor-owned pages on 11 August 2026.
| Provider | Public program status | Published terms relevant to a directory | Editorial conclusion |
|---|---|---|---|
| Brevo | Yes, via PartnerStack | Designed for bloggers, creators, and publishers; the public page describes fixed commissions but does not expose the amount | Best direct match for this guide; apply only after the article has independent value |
| Resend | No public publisher affiliate program found | Official searches surfaced product and legal pages, but no application or referral terms | Do not claim or invent a program; ask Resend partnerships directly if needed |
| Mailchimp | Partner rewards, not an ordinary publisher link | Mailchimp & Co requires at least two paid connected client accounts; referral links were removed from Partner Center | Poor fit for a directory affiliate CTA unless Software Listing actually manages client accounts |
| Zapmail | Yes | 10% recurring on qualifying monthly-plan purchases; annual plans and domains excluded; NET 60 and a $25 minimum payout | Available, but verify the rate displayed after approval before publishing a link |
| MailerLite | Yes | 30% lifetime recurring, 45-day cookie; payout conditions apply | Strong publisher program, though the product is broader email marketing rather than only transactional delivery |
| GetResponse | Yes, via PartnerStack | Current landing page advertises 40–60% recurring for 12 months by sales tier | Attractive program for marketing-automation content; not a drop-in recommendation for every SMTP use case |
| SMTP2GO | Yes, via PartnerStack | 20% recurring commission on paid referred accounts | A closer functional alternative for future transactional-email comparisons |
| Postmark | Limited pilot | The official FAQ says the initial program is restricted to a small selected group | Not presently an open application opportunity |
The best first application is Brevo because the article documents a real implementation and explains both its limit and its benefit. The Dale Carnegie principle here is simple: tell Brevo what it receives, not what we want. Software Listing can give Brevo a tested setup guide, qualified readers already looking for authenticated custom-domain sending, transparent disclosure, and updates when product terms change.
Responsible sending checklist
This infrastructure should be used for messages people expect: account notices, requested follow-ups, support, invoices, and permission-based newsletters. It is not permission to scrape addresses or blast a purchased list.
Before sending:
- identify the sender and why the recipient is receiving the message;
- use a real reply address;
- keep a suppression list and honor opt-outs promptly;
- stop sequences when someone replies;
- remove bounces and complaints;
- send small batches until the domain has a healthy reputation; and
- follow the recipient's applicable privacy and anti-spam laws.
Sources and verification
Product and program details were checked on 11 August 2026 against Cloudflare Email Routing documentation, Cloudflare Email Service limits, Brevo's free-plan limits, Brevo domain authentication guidance, and the vendor program pages for Brevo, Mailchimp, Zapmail, MailerLite, GetResponse, SMTP2GO, and Postmark. Programs and free tiers change, so confirm the application dashboard before publishing a tracked link.