Farzin.io

Farzin.io
cover
I Fired My $50 Mail Server and Replaced It with Cloudflare + Gmail

Published on 4/26/2026

I Fired My $50 Mail Server and Replaced It with Cloudflare + Gmail

I was paying $50/month for email. Now I pay $0, and nobody had to babysit SMTP.

EmailCloudflareGmailDevOps

I used to run my own mail server.

Not because I’m brave. Not because I enjoy pain. And definitely not because I wake up thinking, “You know what would make today better? Debugging SMTP.”

I did it because I wanted one very simple thing:

me@farzin.io — send email, receive email, look professional, go live my life.

So naturally, I made it weird.

I spun up a full Mailcow server. 2 cores. 4GB RAM. Around $50/month.

For email.

One email address.

Beautifully overengineered. Emotionally expensive.

The Problem

Running a mail server sounds cool in theory, the same way owning a dragon sounds cool in theory.

Then the dragon burns your house down because your SPF record had a typo.

I had:

  • DKIM, SPF, and DMARC records that looked like ancient curses
  • Random deliverability drama
  • Server updates
  • Spam fighting
  • Logs I pretended to understand
  • A monthly bill that kept whispering, “Are you sure about this?”

And what was I really using?

Just:

  • Sending emails from me@farzin.io
  • Receiving emails to me@farzin.io

That’s it.

No team inboxes. No newsletters. No enterprise setup. No “email infrastructure strategy.”

Just me, one inbox, and a server acting like it was powering a Fortune 500 company.

So I asked the obvious question:

Why am I paying $50/month to cosplay as Google?

The Better Way

Turns out, the solution was much simpler:

  • Cloudflare Email Routing (for receiving emails)
  • Gmail SMTP (for sending emails)

Together, they give me exactly what I wanted from the beginning:

  • Receive email at me@farzin.io
  • Send email from me@farzin.io
  • Reply like a normal human
  • Pay $0
  • Never SSH into a mail server again

That last one is very important for inner peace.

No servers. No maintenance. No little SMTP goblin living in my terminal.

How It Works

  • Cloudflare receives email for your domain
  • Cloudflare forwards it to your Gmail inbox
  • Gmail sends email as your custom domain using SMTP
  • Everyone else just sees me@farzin.io

Clean. Simple. Suspiciously reasonable.

Step-by-Step Setup

Step 1: Enable 2FA on Google

First, enable 2-factor authentication on your Google account.

You need this because Gmail only lets you create App Passwords when 2FA is enabled.

No 2FA → no App Password → no SMTP → sadness.

Step 2: Create a Gmail App Password

Go to your Google account and generate an App Password for Mail.

This is the password Gmail will use for SMTP. It is not your regular Google password, which is good, because throwing your real password into random config screens is how horror movies for developers begin.

  • Select: Mail
  • Device: your computer
  • Click Generate
  • Copy the password and keep it nearby

Step 3: Add Your Custom Email to Gmail

In Gmail:

Settings → Accounts → Send mail as → Add another email address

Fill in:

  • Your name
  • Your custom email (e.g. me@farzin.io)

Important:
Untick "Treat as an alias".

Gmail loves little checkboxes that change the meaning of reality, so do not skip this.

Click Next Step

Step 4: Configure SMTP

Use these settings:

  • SMTP Server: smtp.gmail.com
  • Port: 587
  • Username: your Gmail address
  • Password: the App Password from Step 2
  • TLS: enabled

Click Add Account

Gmail will send a verification code to your custom email. Since Cloudflare will forward that email to Gmail, you can confirm it from the same inbox.

Yes, this feels a little circular. Yes, it works.

Step 5: Configure DNS (SPF + DMARC)

Now jump into Cloudflare DNS and add the records that tell the world, “Yes, Gmail is allowed to send email for this domain. Please do not throw me into spam jail.”

SPF Record:

  • Type: TXT
  • Name: @
  • Content:
v=spf1 include:_spf.mx.cloudflare.net include:_spf.google.com ~all

DMARC Record:

Make sure your policy is set to none while you’re getting started:
v=DMARC1; p=none; rua=mailto:

That keeps things friendly while you verify everything is flowing correctly. You can tighten it later if you want to put on the serious admin hat.

Now you can:

  • Receive emails via Cloudflare → Gmail
  • Send emails from Gmail as me@farzin.io
  • Reply seamlessly with the correct address

No server. No Docker. No Mailcow. No $50 bill.

My VPS was finally free to stop pretending it was a tiny post office.

Why This Is Better

  • Free — the invoice is a beautiful blank space
  • Reliable — Gmail is much better at email than my lonely VPS
  • Zero maintenance — no updates, no patching, no surprise SMTP therapy
  • Fast setup — you can do it in under 15 minutes
  • Simple — which is usually what we wanted before we got distracted by dashboards

When Should You Do This?

This setup is perfect if you:

  • Just need a personal domain email
  • Don’t want to manage a mail server
  • Care about simplicity over control
  • Want “it just works” energy without paying “please manage my dragon” money

If you’re running company-wide email with teams, compliance, shared mailboxes, and policies? Sure, use something heavier.

If you’re just trying to send emails from your domain?

This is probably all you need.

Conclusion

I didn’t need a mail server — I just needed an email address. There’s a big difference, and firing that $50/month setup felt fantastic. The server is gone, the emails still work, and my DNS records are no longer the main character. Trust me, your future self — the one not debugging SPF records at midnight while questioning every life decision — will thank you.

Share this post