// blog post
Free Custom Domain Email with Cloudflare and SMTP2Go
I wanted a professional email address for my domain, something like michael@saulutions.ca instead of a generic Gmail. Turns out you can set this up for free in about 15 minutes using Cloudflare and SMTP2Go, and it all works through your existing Gmail inbox.
Here’s what we’re building:
- Receive emails at
you@yourdomain.com(Cloudflare Email Routing → Gmail) - Send emails from
you@yourdomain.com(Gmail → SMTP2Go) - No mail server required - everything routes through services you already use
What You’ll Need
- A domain with DNS managed by Cloudflare (free plan works)
- A Gmail account (or any email you want to receive at)
- An SMTP2Go account (free tier: 1,000 emails/month)
Step 1: Set Up Receiving with Cloudflare Email Routing
This is the easy part. Cloudflare has a free email routing feature that forwards emails from your domain to any existing email address.
- Log into your Cloudflare dashboard
- Select your domain
- Go to Email Routing in the sidebar
- Click Get started if this is your first time
- Cloudflare will ask to add the required MX and TXT records, so click Add records automatically
- Under Routing rules, click Create address
- Set up your route:
- Custom address: the email you want (e.g.,
michael) - Destination: your Gmail address
- Custom address: the email you want (e.g.,
- Click Save
Cloudflare will send a verification email to your Gmail. Click the link to confirm.
That’s it for receiving. Emails sent to you@yourdomain.com now land in your Gmail inbox.
Optional: Catch-All
If you want any address at your domain to forward to your Gmail (e.g., support@, info@, anything@), enable the Catch-all rule and point it to your Gmail.
Step 2: Create an SMTP2Go Account
Cloudflare Email Routing only handles receiving. To send from your custom address, you need an SMTP service. SMTP2Go’s free tier gives you 1,000 emails per month, more than enough for personal use.
- Go to smtp2go.com and sign up
- Once logged in, go to Settings → Users
- Click Add SMTP User
- Set a username and password, and save these because you’ll need them
- Note the SMTP details:
- Server:
mail.smtp2go.com - Port:
587(TLS) or465(SSL) - Username: your SMTP user
- Password: your SMTP password
- Server:
Add Your Sender Domain
SMTP2Go needs to verify that you own the domain you’re sending from.
- Go to Settings → Sender Domains
- Click Add a Sender Domain
- Enter your domain (e.g.,
saulutions.ca) - SMTP2Go gives you DNS records (DKIM, SPF) to add in Cloudflare
- Go to your Cloudflare DNS settings and add those records
- Back in SMTP2Go, click Verify and it should go green
This step is important. Without it, your emails might get flagged as spam or rejected entirely.
Step 3: Configure Gmail “Send Mail As”
Now connect everything so you can send from your custom address right inside Gmail.
- Open Gmail → click the gear icon → See all settings
- Go to the Accounts and Import tab
- Under Send mail as, click Add another email address
- Enter:
- Name: Your Name
- Email address:
you@yourdomain.com
- Click Next Step
- Enter your SMTP2Go credentials:
- SMTP Server:
mail.smtp2go.com - Port:
587 - Username: your SMTP2Go username
- Password: your SMTP2Go password
- Select Secured connection using TLS
- SMTP Server:
- Click Add Account
- Gmail sends a verification code to
you@yourdomain.com, and since you set up Cloudflare routing in Step 1, this arrives in your Gmail inbox - Enter the code or click the confirmation link
Set as Default (Optional)
Back in Accounts and Import, you can click make default next to your new address. Now all outgoing emails send from you@yourdomain.com by default.
The Result
You now have a professional email that:
- Receives at
you@yourdomain.comvia Cloudflare (free) - Sends from
you@yourdomain.comvia SMTP2Go (free tier) - Lives in your Gmail inbox - no separate app, no mail server
- Replies go out as your custom domain, not your Gmail address
Total cost: $0 (assuming you already have a domain on Cloudflare).
Bonus: Contact Form Integration
If you have a website, you can use the same SMTP2Go credentials to send contact form submissions to yourself. I use nodemailer in my Astro site’s API endpoint to send form submissions through SMTP2Go, and the email arrives in my Gmail from contact@saulutions.ca with the visitor’s email as the reply-to address. Hit reply, and I’m responding from michael@saulutions.ca.
Questions? Feel free to leave a comment below or get in touch.
// wanna get notified?
Drop your email and I'll let you know when I publish new guides on homelab, self-hosting, and dev stuff.