How to Set Up a Free Custom Domain Email with Zoho Mail, Cloudflare, and Your Own Domain
How to Set Up a Free Custom Domain Email with Zoho Mail, Cloudflare, and Your Own Domain A custom email address like contact@yourdomain.com 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: A domain name (for example, yourdomain.com ) DNS access in Cloudflare or your domain provider A Zoho Mail account A few minutes to add DNS records and wait for propagation For this setup, I used: Website hosting: Vercel DNS: Cloudflare Email provider: Zoho Mail 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: Buy a domain. Sign up for Zoho Mail. Add your existing domain. Verify that you own the domain using a TXT record. Add MX records so mail is delivered to Zoho. Add SPF, DKIM, and DMARC for email authentication. 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, ch