Free Unlimited Custom-Domain Email with Gmail + Cloudflare
Set up custom domain email addresses (like hello@yourdomain.com) that route into your existing Gmail inbox for free — and send mail AS that address from Gmail — with no paid Google Workspace subscription. Cloudflare Email Routing forwards the mail in; Gmail's 'Send mail as' with an App Password sends it out. Step by step, plus troubleshooting.
Free Unlimited Custom-Domain Email with Gmail + Cloudflare
By JB (Muke Johnbaptist) · July 2026. A complete guide to setting up custom domain email addresses (e.g. hello@yourdomain.com) that route into your Gmail inbox for free — and let you send mail as that address from Gmail.
How it works
- Cloudflare Email Routing (free) forwards any email sent to your custom domain into an existing Gmail inbox.
- Gmail's "Send mail as" feature lets you reply and compose using your custom domain address, sent through Gmail's own SMTP servers.
- No paid Google Workspace subscription is required.
Requirements
- A Gmail account (free — two minutes to create if you don't have one).
- A custom domain you own or fully control (registered anywhere — Cloudflare, Namecheap, GoDaddy, name.com, AWS Route 53, etc.).
💡 Tip: this is much simpler on a brand-new domain with no existing DNS records. If you're adding it to a domain that already has a live website or email service, back up your current DNS records first — moving your domain to Cloudflare's nameservers puts Cloudflare in charge of all DNS.
Step 1: Add your domain to Cloudflare
- Create a free Cloudflare account and log in.
- Click Add a Domain and enter your domain name.
- Choose the Free plan — it includes Email Routing, no upgrade needed.
- Cloudflare scans and imports any existing DNS records it finds. If the domain already has records (e.g. a "coming soon" page), review them carefully; if migrating a live site later, consider setting proxy status to "DNS only" until everything is confirmed working.
- Cloudflare gives you two new nameservers (NS records).
Step 2: Update your domain's nameservers
- Go to wherever you registered the domain (Namecheap, GoDaddy, name.com, etc.).
- Find the Nameservers section.
- Replace the existing nameservers with the two Cloudflare nameservers from Step 1.
- Save.
⏳ Propagation: usually under 15 minutes, occasionally a few hours depending on registrar and location. Refresh the domain status page in Cloudflare to see when it's marked active.
Step 3: Set up Email Routing in Cloudflare
Once your domain shows as active:
- In the dashboard, go to Email → Email Routing and enable it.
- Create a custom address, e.g.
hello@yourdomain.com. - Set the destination address to your existing Gmail account (e.g.
you@gmail.com). - Click Create and Continue.
- Cloudflare sends a verification email to your Gmail — open it and click to verify the routing address.
- Back in Cloudflare, you'll see the required DNS records (MX + a TXT record). Click Add records and enable and Cloudflare inserts them automatically.
⚠️ If another email service is already configured on this domain, these records could conflict. Adjust as needed, or use a fresh domain to avoid conflicts entirely.
Repeat this step to add as many addresses as you want (support@, contact@, yourname@, …), all routing to the same or different Gmail inboxes — free and unlimited.
Step 4: Verify incoming mail works
- From a different account, send a test message to your new custom address.
- Check the destination Gmail inbox — the message should arrive (check Spam too, especially early on).
- If it doesn't arrive right away, it's usually just DNS propagation — wait a bit and retry.
Step 5: Send email as your custom domain from Gmail
By default, replying to a forwarded message still sends from your Gmail address. To actually send as hello@yourdomain.com, configure Gmail's "Send mail as" feature using an App Password.
5a. Create a Gmail App Password
- Go to your Google Account settings.
- Turn on 2-Step Verification (required for app passwords) — set up an authenticator app if you haven't.
- Search for App Passwords in account settings.
- Create one with a clear name (e.g.
hello@yourdomain.com app password for Gmail). - Copy the generated password — you'll paste it next. You can always delete and regenerate it later.
5b. Add the custom address as a "Send mail as" alias
- In Gmail: Settings (gear) → See all settings → Accounts and Import.
- Under Send mail as, click Add another email address.
- Enter your custom domain address.
- Check Treat as an alias.
- Leave "Reply-to address" empty (or the same address — it just duplicates).
- Click Next Step and enter the SMTP settings:
- SMTP Server:
smtp.gmail.com - Port: default (keep as-is)
- Security: TLS (default)
- Username: your actual Gmail address (e.g.
you@gmail.com) - Password: the App Password from Step 5a
- SMTP Server:
- Click Add Account.
- Gmail sends a confirmation email to your custom address — routed via Cloudflare, it lands back in your Gmail. Open it and click the verification link.
5c. Reply and compose as your custom domain
- Compose a new email — you'll now see a "From" dropdown to choose your custom address.
- Send a test to confirm.
- To make replies default correctly: Settings → Accounts and Import → under "When replying to a message," select Reply from the same address the message was sent to.
Step 6: Repeat for additional addresses
- Repeat Steps 3 and 5 for every extra address you want.
- All can route to one Gmail inbox, or to different Gmail accounts if multiple people need separate inboxes.
- If several people manage the same address, consider a dedicated Gmail account just for that custom email.
Troubleshooting
| Issue | Likely cause |
|---|---|
| Test email never arrives | DNS propagation delay — wait and retry; check Spam |
| "Send as" verification email not received | Check the Cloudflare routing destination is correct |
| Can't send as custom address | Re-check the App Password; confirm 2-Step Verification is on |
| Replies go out as your Gmail, not the custom domain | Set "When replying" to reply from the address received |
| Records conflict with existing email service | Adjust/remove conflicting MX or TXT records; best avoided with a fresh domain |
Notes & limitations
- This uses a personal Gmail account, not Google Workspace — a workaround, not officially designed for this at scale.
- Best for solo devs, side projects, or early-stage startups needing a legit-looking custom email without paying for Workspace.
- As a project grows or needs more robust team email management, migrating to a paid service (e.g. Google Workspace) is recommended.
- Cloudflare Email Routing only forwards incoming mail — it doesn't send outbound; that's handled by Gmail's SMTP via the "Send mail as" setup.


