Free Email Hosting

Intro

If you own one or more domain names, you have most likely used an email address on that domain name. Having email addresses with your own domain is like adding a personal touch to your online presence. It gives you a unique identity, builds trust with people you interact with, and lets you stay in control of your brand and privacy.

Most of the time, people like to use premium email hosting providers. I usually go with Hostinger or Google Workspace, setup multiple inboxes and add some aliases. Time-consuming setup and management processes, coupled with the complexity of handling multiple inboxes and apps can be confusing and frustrating. The limited number of email aliases outgoing email addresses forces users to buy more inboxes which can strain budgets. These challenges highlight the need for simpler and more affordable email solutions.

In this blog we will setup Cloudflare email routing and Gmail to send and receive emails from addresses on custom domain names. You will need a Cloudflare and Google account for this process. If you haven’t already done so, sign up for a free account on both services.

Email delivery

When you send an email, your email client (usually browser or email app) talks to a SMTP (Simple Mail Transfer Protocol) server, which works like a post office. The SMTP server checks a directory called DNS MX records to find out where your email needs to go based on the recipient’s email domain. It then forwards your email to the recipient’s email provider’s SMTP server, which puts it into their inbox. The recipient can then use another email client to view the received email.

Cloudflare Setup

Log into Cloudflare dashboard. Add the domain name if not already added or sign up for a new domain.

Follow the directions on https://developers.cloudflare.com/email-routing/get-started/enable-email-routing/ to setup email routing for your domain.

[!TIP]

Choose the format <gmail_account>+<domain_without_tld>@gmail.com. So if you using [email protected] for receiving example.com emails, add [email protected]. The emails will still go into the [email protected] inbox but the Delivered-To header in the email will show [email protected] which we can be nice for keeping track of emails.

General directions: Email > Email Routing > Get started. Add custom email address and destination email address. Verify destination email address. Add DNS records, automatically for Cloudflare DNS or manually for other DNS providers.

For additional custom email addresses go to Email > Email Routing > Routing Rules > Custom Address and click Create address.

For additional destination addresses, go to Email > Email Routing > Destination Address and click Add destination address.

Gmail Setup

With the Cloudflare setup above, Gmail is already receiving emails. Now we need to sort the emails coming into Gmail and configure SMTP to send emails. For the following steps login into the gmail website.

Sorting

Click on the settings gear icon at the top and click See all settings.

This step is optional. New labels can also be created while creating filters in the next step. Go to Labels and Create new label. Add a meaningful label name. I use the domain name without the tld. For example.com, I will use example.

Go to Filters and Blocked Addresses and Create a new filter. In the To field, enter @<domain_name>. For example.com, I will enter @example.com. Click Create filter and in the next page, select Apply the label and pick the label created above or create a new label. Click Create filter one last time.

Now when a new message comes in with <email_address>@<domain_name>, it will marked with the label selected. A list of labels will be shown in the Gmail webpage and mobile app. Picking the label will show all the email for that domain. Gmail will also automatically apply other labels like Inbox and Promotions/Social/Updates/Forum, so the emails will be available and searchable with labels.

Sending

SMTP providers have different number of free emails per day or per month. I will update this from time to time. You can use a different service providers for different emails. For higher send volume, consider using a paid service. Amazon SES is a cheaper option.

ProviderFree Emails
Gmail500/day
Brevo(formerly Sendinblue)300/day
Mailjet200/day
SendGrid100/day

For using Google SMTP, create an app password for email. Ref: https://knowledge.workspace.google.com/kb/how-to-create-app-passwords-000009237

For using SendGrid (similar steps for other SMTP providers), generate an API key in the dashboard with mail send permissions . Ref: https://docs.sendgrid.com/for-developers/sending-email/integrating-with-the-smtp-api

Log into Gmail website. Click on the settings gear icon at the top and click See all settings. Go to Accounts and Import.

Under Send mail as:, make sure When replying to a message: is set to Reply from the same address the message was sent to

Click on Add another email address. Enter the name to use. You can enter your own name for personal addresses or something like Example Support for business addresses. Enter the email address you want to send as, for example, [email protected]. Uncheck Treat as an alias. Click Next Step.

Add the SMTP server details for your SMTP provider and click Add Account.

Now when composing new emails, this email address will be available in the From dropdown. Using the Reply button on emails received on this address will also automatically set the From address to this address.

Thank you for reading. I will post more content shortly.