skip to content
Gift Egwuenu
Search articles
Back to articles

Setting Up a Custom Email with Zoho Mail and Cloudflare

· 6 min read

I’ve always wanted a professional email address for my domain - something like [email protected] instead of a generic Gmail address.

I’ve tried using Cloudflare Email Routing in the past, and while it works great for forwarding emails to your personal inbox, I was missing having an actual custom mailbox - a dedicated inbox where I could send and receive emails as my custom address.

After exploring a few options, I landed on Zoho Mail. Here’s how I set it up with my Cloudflare-hosted domain.

Why Zoho Mail?

There are several providers for custom domain email - Google Workspace, Microsoft 365, Fastmail, and more. I chose Zoho Mail for a few reasons:

  • Free tier available - Up to 5 users with 5GB storage each
  • Clean interface - Modern UI without the clutter
  • Privacy-focused - No ads, even on the free tier
  • Good deliverability - Emails actually land in inboxes

If you’re a freelancer, creator, or just want a professional email without paying monthly fees, Zoho’s free tier is hard to beat.

What You’ll Need

Before we start, make sure you have:

  • A domain name (I’m using my domain)
  • Access to your Cloudflare DNS dashboard (or if your domain is hosted elsewhere, access to that dashboard to change DNS settings)
  • About 15-20 minutes of your time

Step 1: Sign Up for Zoho Mail

Head to Zoho Mail and click “Sign Up Free”. Choose the Personal email which includes:

  • Up to 5 users
  • 5GB storage per user
  • Web access + mobile apps
  • Email hosting for one domain

During signup, you’ll enter your domain name and the email address you want to create (e.g., [email protected]).

After signing up, head over to the Zoho admin panel.

Step 2: Verify Domain Ownership (One-Click Method)

Zoho needs to confirm you own the domain. The good news is that Zoho offers a one-click verification method that makes this incredibly easy. If you use one-click verification, you can also configure your MX, SPF, and DKIM records using the same method - no manual DNS editing required!

  1. In the Zoho setup wizard, look for the One-click verification option
  2. Authenticate with your DNS provider (Cloudflare, in my case)
  3. Zoho will automatically add the verification TXT record to your domain
  4. Once verified, you can use the same one-click method for MX, SPF, and DKIM records

This is the method I used, and it took less than a minute to configure everything. Zoho handles all the DNS record creation for you.

Manual Method (If One-Click Isn’t Available)

If one-click verification isn’t available for your DNS provider, you can add the records manually. Zoho will give you a verification code that looks something like:

zoho-verification=zb12345678.zmverify.zoho.com

Add this TXT record in Cloudflare:

  1. Log in to your Cloudflare dashboard
  2. Select your domain
  3. Go to DNS > Records
  4. Click Add record
  5. Configure the record:
TypeNameContentTTL
TXT@zoho-verification=zb12345678.zmverify.zoho.comAuto

Click Save and head back to Zoho to verify. It usually takes a few minutes for DNS to propagate.

Step 3: Configure MX Records

If you used one-click verification, you can configure MX records the same way - just click the button and Zoho handles it automatically.

For manual configuration, MX (Mail Exchange) records tell the internet where to deliver emails for your domain. This is the most important step.

In Cloudflare, add the following MX records:

TypeNameMail serverPriorityTTL
MX@mx.zoho.com10Auto
MX@mx2.zoho.com20Auto
MX@mx3.zoho.com50Auto

The priority numbers matter - lower numbers have higher priority. If the primary server (mx.zoho.com) is unavailable, email routes to the backup servers.

Step 4: Set Up SPF Record

Again, if you used one-click verification, Zoho can add this automatically for you.

SPF (Sender Policy Framework) helps prevent email spoofing by specifying which servers can send email on behalf of your domain.

For manual setup, add this TXT record:

TypeNameContentTTL
TXT@v=spf1 include:zoho.com ~allAuto

Note: If you already have an SPF record (maybe from another service), don’t create a duplicate. Instead, merge them:

v=spf1 include:zoho.com include:other-service.com ~all

Step 5: Configure DKIM

One-click verification supports DKIM too! If you’re doing it manually, here’s how:

DKIM (DomainKeys Identified Mail) adds a digital signature to your emails, proving they came from your domain. This improves deliverability significantly.

In Zoho Mail:

  1. Go to Admin Console > Email Authentication > DKIM
  2. Click Add Selector
  3. Zoho will generate a TXT record value for you

Add the DKIM record in Cloudflare:

TypeNameContentTTL
TXTzmail._domainkeyv=DKIM1; k=rsa; p=MIGfMA0GCS… (your key)Auto

The selector name might be different (like default._domainkey or zoho._domainkey) - use whatever Zoho provides.

DMARC ties SPF and DKIM together and tells receiving servers what to do with emails that fail authentication.

Add this TXT record:

TypeNameContentTTL
TXT_dmarcv=DMARC1; p=none; rua=mailto:[email protected]Auto

The p=none policy means you’re just monitoring for now. Once you’re confident everything works, you can change it to p=quarantine or p=reject.

Final DNS Configuration

Here’s what your Cloudflare DNS records should look like when you’re done:

# MX Records
@    MX    mx.zoho.com     10
@    MX    mx2.zoho.com    20
@    MX    mx3.zoho.com    50

# TXT Records
@              TXT    zoho-verification=zb12345678.zmverify.zoho.com
@              TXT    v=spf1 include:zoho.com ~all
zmail._domainkey    TXT    v=DKIM1; k=rsa; p=MIGfMA0GCS...
_dmarc         TXT    v=DMARC1; p=none; rua=mailto:[email protected]

Testing Your Setup

Once everything is configured:

  1. Send a test email from your new address to a Gmail account
  2. Check email headers - Look for SPF=pass and DKIM=pass
  3. Use a testing tool like mail-tester.com to check your deliverability score

If SPF or DKIM fails, double-check your DNS records and wait for propagation (can take up to 48 hours, though usually much faster).

Accessing Your Email

You can access your Zoho Mail through:

  • Web: mail.zoho.com
  • Mobile: Zoho Mail app for iOS/Android
  • Desktop client: Configure IMAP/SMTP in your preferred email client

IMAP/SMTP Settings

If you want to use a desktop client like Apple Mail or Thunderbird, here are the settings. Note that IMAP/POP access requires a paid Zoho plan, so if you’re optimizing for free, you’ll want to stick with the web and mobile apps.

Incoming (IMAP):

  • Server: imap.zoho.com
  • Port: 993
  • Security: SSL

Outgoing (SMTP):

  • Server: smtp.zoho.com
  • Port: 465
  • Security: SSL

Wrapping Up

Setting up a custom email might seem intimidating at first, but Zoho’s one-click verification makes it incredibly straightforward - you can have everything configured in minutes without touching DNS records manually. Even if you go the manual route, it’s really just a matter of adding a few DNS records. With Zoho’s free tier and Cloudflare’s DNS management, you get a professional email setup without any monthly costs.

Now when I send emails from [email protected], they land in inboxes properly authenticated. That’s a win!

Have you set up custom email for your domain? I’d love to hear what provider you chose and why.

Resources