JB logo
CoffeeyOUTUBE
Blog
PreviousNext

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

  1. A Gmail account (free — two minutes to create if you don't have one).
  2. 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

  1. Create a free Cloudflare account and log in.
  2. Click Add a Domain and enter your domain name.
  3. Choose the Free plan — it includes Email Routing, no upgrade needed.
  4. 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.
  5. Cloudflare gives you two new nameservers (NS records).

Step 2: Update your domain's nameservers

  1. Go to wherever you registered the domain (Namecheap, GoDaddy, name.com, etc.).
  2. Find the Nameservers section.
  3. Replace the existing nameservers with the two Cloudflare nameservers from Step 1.
  4. 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:

  1. In the dashboard, go to EmailEmail Routing and enable it.
  2. Create a custom address, e.g. hello@yourdomain.com.
  3. Set the destination address to your existing Gmail account (e.g. you@gmail.com).
  4. Click Create and Continue.
  5. Cloudflare sends a verification email to your Gmail — open it and click to verify the routing address.
  6. 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

  1. From a different account, send a test message to your new custom address.
  2. Check the destination Gmail inbox — the message should arrive (check Spam too, especially early on).
  3. 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

  1. Go to your Google Account settings.
  2. Turn on 2-Step Verification (required for app passwords) — set up an authenticator app if you haven't.
  3. Search for App Passwords in account settings.
  4. Create one with a clear name (e.g. hello@yourdomain.com app password for Gmail).
  5. 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

  1. In Gmail: Settings (gear)See all settingsAccounts and Import.
  2. Under Send mail as, click Add another email address.
  3. Enter your custom domain address.
  4. Check Treat as an alias.
  5. Leave "Reply-to address" empty (or the same address — it just duplicates).
  6. 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
  7. Click Add Account.
  8. 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

  1. Compose a new email — you'll now see a "From" dropdown to choose your custom address.
  2. Send a test to confirm.
  3. To make replies default correctly: SettingsAccounts 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

IssueLikely cause
Test email never arrivesDNS propagation delay — wait and retry; check Spam
"Send as" verification email not receivedCheck the Cloudflare routing destination is correct
Can't send as custom addressRe-check the App Password; confirm 2-Step Verification is on
Replies go out as your Gmail, not the custom domainSet "When replying" to reply from the address received
Records conflict with existing email serviceAdjust/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.