Zoho MailCloudflareDNSCustom DomainEmail SetupDevOps

How to Set Up a Free Custom Domain Email with Zoho Mail, Cloudflare, and Your Own Domain

2026-06-2210 min read

How to Set Up a Free Custom Domain Email with Zoho Mail, Cloudflare, and Your Own Domain

A custom email address like [email protected] makes a huge difference when you are building a personal brand, portfolio, or freelance presence. It looks more professional than a free Gmail address, and it is surprisingly easy to set up using Zoho Mail’s free plan and your domain’s DNS.

In this guide, I will walk through the exact flow I used to create a professional email address on a custom domain, without paying for a traditional business email suite.

Important: This post uses placeholder values instead of real DNS records, IPs, or credentials. Replace the examples with the values Zoho shows for your own account.


What you will need

Before you begin, make sure you already have:

For this setup, I used:

That combination works very well for a personal website or portfolio.


Why use Zoho Mail?

Zoho Mail is useful because it lets you create a professional email address using your own domain. On the free plan, Zoho supports a single domain with up to 5 users, 5 GB of storage per user, and web-only access. The free plan is available only in select data centers, so availability may vary by region.

For a personal website, that is usually more than enough.


The overall flow

Here is the setup in simple terms:

  1. Buy a domain.
  2. Sign up for Zoho Mail.
  3. Add your existing domain.
  4. Verify that you own the domain using a TXT record.
  5. Add MX records so mail is delivered to Zoho.
  6. Add SPF, DKIM, and DMARC for email authentication.
  7. Test sending and receiving mail.

Step 1: Sign up for Zoho Mail

Go to Zoho Mail’s signup page and choose the free plan.

During signup, Zoho will ask whether you want to add a new domain or an existing one. Since you already own the domain, choose Add an existing domain.

Enter your domain exactly as it should appear, for example:

yourdomain.com

Do not type www.yourdomain.com for email setup. Email should be configured on the root domain.


Step 2: Verify domain ownership

Zoho will ask you to prove that you own the domain. The simplest method is to add a TXT record in Cloudflare DNS.

Zoho will give you a TXT value similar to this:

zoho-verification=zbXXXXXXXX.zmverify.zoho.in

In Cloudflare, add a new DNS record:

TypeNameContent
TXT@zoho-verification=zbXXXXXXXX.zmverify.zoho.in

If Cloudflare does not accept @, use the root domain name directly.

After saving the record, go back to Zoho and click Verify TXT Record.

Once that works, Zoho knows the domain belongs to you.


Step 3: Create your mailbox

After verification, Zoho will let you create the first user account for your domain.

For a personal site, a good choice is:

[email protected]

You can also create:

[email protected]
[email protected]
[email protected]
[email protected]

If you only want one inbox, use aliases later instead of creating multiple mailboxes.


Step 4: Add MX records in Cloudflare

MX records tell the internet where your email should be delivered.

Without MX records, people can send mail to your domain name, but no one will know which server should receive it.

Add the MX records Zoho provides for your data center. For Zoho’s India region, the records usually look like this:

TypeNameMail ServerPriority
MX@mx.zoho.in10
MX@mx2.zoho.in20
MX@mx3.zoho.in50

In Cloudflare DNS:

Do not proxy MX records. Cloudflare handles them as DNS-only records.


Step 5: Add SPF

SPF tells the world which servers are allowed to send email for your domain.

Add this TXT record:

v=spf1 include:zoho.in ~all

In Cloudflare:

TypeNameContent
TXT@v=spf1 include:zoho.in ~all

What SPF means

This says:

This helps reduce spoofing and improves inbox delivery.


Step 6: Add DKIM

DKIM adds a digital signature to outgoing email. It helps receivers confirm that the message really came from your domain and was not modified in transit.

Zoho will generate a DKIM public key for you. The record usually looks like this:

TypeNameContent
TXTzmail._domainkeyv=DKIM1; k=rsa; p=YOUR_LONG_PUBLIC_KEY_HERE

What to do

  1. Open Zoho Admin Console.
  2. Go to DKIM settings.
  3. Generate the DKIM record.
  4. Copy the full TXT value into Cloudflare.
  5. Save the record.
  6. Return to Zoho and verify it.

DKIM verification can take a little longer than SPF because DNS propagation and verification caches may not update instantly.


Step 7: Add DMARC

DMARC is the policy layer that sits on top of SPF and DKIM.

It tells receiving mail servers what to do when authentication fails.

A good starting DMARC record for a personal domain is:

v=DMARC1; p=quarantine; pct=100; adkim=r; aspf=r; rua=mailto:[email protected]; ruf=mailto:[email protected]

In Cloudflare:

TypeNameContent
TXT_dmarcv=DMARC1; p=quarantine; pct=100; adkim=r; aspf=r; rua=mailto:[email protected]; ruf=mailto:[email protected]

What these parts mean

For most personal domains, relaxed alignment is the simplest and safest choice.


Step 8: Wait for propagation

After you add the records, the changes need time to spread across DNS resolvers.

Usually:

Do not panic if Zoho’s UI is slow to update.

A good way to confirm is to test real mail flow.


Step 9: Test sending and receiving

Send a test email from your Zoho mailbox to Gmail.

Then reply from Gmail back to your custom domain email.

If both directions work, the setup is operational.

You can also check the message headers in Gmail to confirm:

That is the best real-world proof that your setup is correct.


Common issues and fixes

1. Zoho still shows MX in red

If mail is already working, the DNS is usually fine. Wait for propagation and check again later.

2. SPF is green but DKIM is still pending

That usually means the DKIM TXT record is correct but Zoho has not rechecked it yet, or the record was added recently.

3. Email is landing in spam

Check all three:

Also make sure your domain is not sending from an unauthorized service.

4. Cloudflare says the record already exists

Double-check for duplicates. You should have only one SPF TXT record and one DKIM TXT record for each selector.


Optional improvements

Once the core setup works, you can make it even better:

Create aliases

A single inbox can receive mail for multiple addresses such as:

[email protected]
[email protected]
[email protected]
[email protected]

Add a signature

A clean signature makes every email look more professional:

Shubham Singh
DevOps / DevSecOps Engineer

Website: https://yourdomain.com
LinkedIn: linkedin.com/in/your-link
GitHub: github.com/your-handle
Email: [email protected]

Use your custom email everywhere

Replace your Gmail address on:

That keeps your brand consistent.


What this setup gives you

This setup is not end-to-end encrypted email, but it does give you:

For a portfolio or professional website, this is exactly what you want.


Final DNS record checklist

Here is the full checklist in one place:

RecordPurposeExample
TXTZoho domain verificationzoho-verification=zbXXXXXXXX.zmverify.zoho.in
MXIncoming mail deliverymx.zoho.in, mx2.zoho.in, mx3.zoho.in
TXTSPFv=spf1 include:zoho.in ~all
TXTDKIMv=DKIM1; k=rsa; p=...
TXTDMARCv=DMARC1; p=quarantine; ...

Conclusion

With a domain, Cloudflare DNS, and Zoho Mail’s free plan, you can build a fully professional email address without paying for a large business email suite.

For a personal portfolio, that is one of the best low-cost upgrades you can make.

It improves your credibility, looks cleaner on your website, and gives your project a more polished finish.