Free Professional Email Setup (Zoho + Gmail + Cloudflare)
π Live Demo / GitHub Pages Site
Set up send + receive email on your own domain for free, using:
- Zoho Mail (Free plan) for mailbox + SMTP
- Cloudflare Email Routing for inbound forwarding
- Gmail as your day-to-day client (send via SMTP, receive via forwarding)
Works without paying for Google Workspace or Zoho paid plans.
π Table of Contents
- How It Works
- Prerequisites
- Step 1 β Add domain to Cloudflare
- Step 2 β Configure MX for Cloudflare Email Routing
- Step 3 β Create a mailbox in Zoho
- Step 4 β Send mail via Zoho SMTP in Gmail
- DNS Reference
- Troubleshooting
- Notes
π How It Works
Inbound:
Domain β Cloudflare (MX) β forwards to Gmail
Outbound:
Gmail (Compose) β Zoho SMTP β recipient
β
Prerequisites
- A domain (e.g., Namecheap)
- A free Cloudflare account
- A free Zoho Mail account (Custom Domain, 1 user)
- A Gmail account
π Step 1 β Add domain to Cloudflare
- Add
YOURDOMAIN
to Cloudflare.
- At your registrar, switch nameservers to Cloudflareβs
(e.g., adel.ns.cloudflare.com
, ricardo.ns.cloudflare.com
).
- In Cloudflare: Email β Email Routing β Get started.
- Create a custom address (e.g.,
support@YOURDOMAIN
) β set Destination to your Gmail.
- Let Cloudflare add the MX and TXT it suggests.
- Wait until Routing status: Enabled.
π Step 3 β Create a mailbox in Zoho
- Add your domain in Zoho Mail Admin and create the user (e.g.,
support@YOURDOMAIN
).
- (On free plan) Do not point MX to Zoho β leave Cloudflare MX as-is.
π Step 4 β Send mail via Zoho SMTP in Gmail
Gmail β Settings β Accounts and Import β Send mail as β Add another email address
Use:
- SMTP server:
smtp.zoho.com
- Port: 587 (TLS) or 465 (SSL)
- Username:
support@YOURDOMAIN
- Password: Zoho App Password (recommended)
Verify via code Zoho sends.
π DNS Reference
| Type | Name | Value / Target | Proxy |
|ββ|ββ|βββββ-|ββ-|
| MX | @ | route1.mx.cloudflare.net
(prio 6) | DNS only |
| MX | @ | route2.mx.cloudflare.net
(prio 73) | DNS only |
| MX | @ | route3.mx.cloudflare.net
(prio 87) | DNS only |
| TXT | @ | Cloudflare routing verification | β |
| TXT | @ | v=spf1 include:zoho.com ~all
| β |
Also set up DKIM in Zoho for better deliverability.
π§ Troubleshooting
- Spam folder issues: Warm up email, complete SPF/DKIM, avoid too many links/images.
- SMTP errors: Double-check app password and SMTP port.
- Cloudflare stuck βSyncingβ: Wait for propagation; check with:
nslookup -type=mx YOURDOMAIN
π
Notes
- Process tested Aug 14, 2025 in Sacramento, CA.
- This repo contains instructions only, no credentials.