Mail Forwarding with Cloudflare for Custom Email Addresses
Cloudflare is a great addition to your blog or website with its speed and caching benefits with increase in security.
Updated 3 July 2026: I've rewritten this guide to use Cloudflare's built-in Email Routing. When I first wrote this in 2020, Cloudflare didn't offer email at all, so I used a third-party service called ImprovMX. You don't need that anymore.
Cloudflare is one of the best CDNs around. It speeds up your site, caches your content so your server does less work, and blocks a lot of junk traffic before it ever reaches you. The one thing I lost when I moved all my domains to Cloudflare was Namecheap's email forwarding, and a custom domain email address matters when you're trying to look professional.
Back then I reached for ImprovMX. These days Cloudflare does the forwarding itself, for free, and it sets up the DNS records for you. Here's the whole thing.
Turn on Email Routing
Log in to your Cloudflare dashboard and pick the domain you want email for. In the sidebar open Email, then Email Routing, and hit Get started. Your domain has to be on Cloudflare for DNS, which it already is if Cloudflare is your CDN.
Add the address you want to receive mail at
Cloudflare first asks for a destination address. This is your real inbox, the one you already read every day. Any Gmail, Outlook, or other address you own works. It sends a quick verification email there. Click the link inside and you're confirmed.
Let Cloudflare add the DNS records
This is the part that used to be manual. Cloudflare shows you the MX and TXT (SPF) records it needs and adds them for you with one click. No copying record values by hand, no typos. If you have old MX records from another mail host, delete them first so they don't clash.
Create your custom addresses
Now you decide what mail actually gets forwarded. Add a specific address like hello@yourdomain.com and point it at your inbox, or send different addresses to different inboxes. If you'd rather catch everything, switch on the catch-all rule and every address at your domain lands wherever you tell it to. The free plan gives you up to 200 rules, which is far more than most people will ever use.
Send yourself a test email and it should land in a few seconds.
One catch: this only receives mail
Email Routing forwards mail to you. It does not send mail out, and Cloudflare doesn't run an SMTP server for you. So if you reply from Gmail it will still go out as your @gmail.com address unless you set up "Send mail as". I wrote a separate guide on doing exactly that: add your custom domain as an alias in Gmail. Do both and you can send and receive from your domain address without paying for a mailbox.
That's it. Let me know if it worked for you or if you got stuck anywhere.