Skip to content

zxcvresque/Custom-Email-Setup

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

7 Commits
Β 
Β 
Β 
Β 

Repository files navigation

banner

Free Cloudflare SMTP2GO Gmail


πŸ“¬ What You'll Build

A fully working yourname@yourdomain.com email address β€” receive in Gmail/Outlook, send from Gmail/Outlook β€” using only free services. No hosting required.

Service Role Cost
Cloudflare DNS + inbound email forwarding Free forever
SMTP2GO Outbound sending via SMTP Free (1,000/mo Β· 200/day)
Gmail / Outlook Your actual inbox Your existing account

πŸ—ΊοΈ Architecture

flowchart TD
    A["πŸ“¨ Sender\nanyone@anywhere.com"]:::sender -->|"to hello@yourdomain.com"| B

    subgraph CF ["☁️ Cloudflare β€” Email Routing"]
        B["πŸ”€ MX Records\nhello@yourdomain.com"]:::cloudflare
    end

    B -->|"forwarded instantly"| C["πŸ“₯ Your Gmail / Outlook\ndestination inbox"]:::inbox

    C -->|"compose as hello@yourdomain.com"| D

    subgraph S2 ["πŸ”΅ SMTP2GO β€” Free 1,000/mo"]
        D["πŸ“€ mail.smtp2go.com:587\nSPF + DKIM signed"]:::smtp
    end

    D -->|"delivered"| E["πŸ“¬ Recipient's Inbox"]:::recipient

    classDef sender     fill:#1e293b,stroke:#64748b,color:#e2e8f0
    classDef cloudflare fill:#7c2d00,stroke:#f6821f,color:#fed7aa
    classDef inbox      fill:#14532d,stroke:#4ade80,color:#bbf7d0
    classDef smtp       fill:#1e3a5f,stroke:#3b82f6,color:#bfdbfe
    classDef recipient  fill:#3b0764,stroke:#a855f7,color:#e9d5ff
Loading

🧭 Prerequisites

That's it. No server. No hosting. No credit card.


⚠️ Free Plan Limits

Know these before you start:

Cloudflare Email Routing SMTP2GO Free
Inbound (receiving) βœ… Unlimited β€”
Outbound (sending) β€” 1,000 emails/month
Daily send cap β€” 200 emails/day
Custom addresses βœ… Unlimited β€”
Catch-all rule βœ… Yes β€”
SMTP credentials β€” 1 user
Cost πŸ†“ Free forever πŸ†“ Free forever

πŸ’¬ Is this enough? For personal use, newsletters to a small list, contact forms, or side projects β€” yes, easily. If you need to send more, SMTP2GO paid plans start at $15/month for 50,000 emails.

πŸ“ˆ Scaling Path

If you outgrow the free tier, here's how to scale β€” no architecture changes needed, just swap the SMTP provider:

flowchart LR
    A["🌱 Personal\n< 1,000/mo"]:::free -->|"growing list"| B
    B["πŸš€ Small Business\n1k–50k/mo"]:::starter -->|"high volume"| C
    C["🏒 Production\n50k+/mo"]:::pro

    subgraph T1 ["Free Tier"]
        A
    end
    subgraph T2 ["Paid SMTP"]
        B
        C
    end

    classDef free    fill:#14532d,stroke:#4ade80,color:#bbf7d0
    classDef starter fill:#1e3a5f,stroke:#3b82f6,color:#bfdbfe
    classDef pro     fill:#3b0764,stroke:#a855f7,color:#e9d5ff
Loading
Stage Volume Recommended Service Est. Cost
🌱 Personal < 1,000/mo SMTP2GO Free ← you are here $0
πŸ“¬ Growing up to 10,000/mo SMTP2GO Starter ~$15/mo
πŸš€ Small Biz up to 50,000/mo Resend or Brevo ~$15–20/mo
🏒 Production 100k+/mo Postmark or SendGrid ~$15–$50+/mo

πŸ” Switching is painless β€” Cloudflare Email Routing (inbound) never changes. You only update the SMTP credentials in Gmail/Outlook and swap the 3 SMTP2GO CNAMEs in Cloudflare DNS for your new provider's records. Your hello@yourdomain.com address stays exactly the same.


πŸš€ Step 1 β€” Add Your Domain to Cloudflare

Cloudflare needs to manage your DNS. Your registrar stays the same β€” you just point it at Cloudflare's nameservers.

1.1 Add your site

  1. Log in β†’ dash.cloudflare.com
  2. Add a site β†’ enter your domain β†’ choose Free plan
  3. Cloudflare scans your existing DNS records β€” review and continue

1.2 Update nameservers at your registrar

Cloudflare shows you two nameservers like:

aria.ns.cloudflare.com
bob.ns.cloudflare.com

Go to your registrar and replace the current nameservers with these.

GoDaddy: My Products β†’ DNS β†’ Nameservers β†’ Change β†’ Enter my own nameservers

Namecheap: Domain List β†’ Manage β†’ Nameservers β†’ Custom DNS

⏳ Cloudflare usually activates within minutes. Full propagation can take up to 24h.


πŸ“₯ Step 2 β€” Set Up Inbound Email ( Cloudflare Email Routing)

Makes hello@yourdomain.com forward to your real inbox β€” free, no receiving limits.

2.1 Verify your destination inbox

  1. Cloudflare Dashboard β†’ Email β†’ Email Routing β†’ Destination addresses
  2. Add destination address β†’ enter your Gmail or Outlook address
  3. Open the verification email Cloudflare sends and click the link βœ…

2.2 Create your custom address

  1. Email Routing β†’ Routing rules β†’ Custom addresses β†’ Create address
Custom address:  hello@yourdomain.com
Action:          Send to β†’ you@gmail.com

Repeat for as many as you need:

hello@yourdomain.com   β†’ you@gmail.com
info@yourdomain.com    β†’ you@gmail.com
support@yourdomain.com β†’ you@gmail.com

πŸ’‘ Catch-all: Email Routing β†’ Routing rules β†’ Catch-all address β†’ Edit β†’ Send to β†’ you@gmail.com β†’ Enable βœ…
Any address on your domain that doesn't match a rule (including typos) will still land in your inbox.

2.3 Enable Email Routing

  1. Email Routing β†’ Settings β†’ Enable Email Routing β†’ Add records and enable

Cloudflare automatically adds and locks these records:

Type   Name   Content                                 Priority
MX     @      route1.mx.cloudflare.net                13
MX     @      route2.mx.cloudflare.net                37
TXT    @      v=spf1 include:_spf.mx.cloudflare.net ~all

πŸ”’ These are managed by Cloudflare β€” you can't accidentally delete them.

βœ… Done. Send a test email to hello@yourdomain.com β€” it should land in your inbox in seconds.


πŸ“€ Step 3 β€” Set Up Outbound Email ( SMTP2GO)

Lets you send from hello@yourdomain.com through Gmail or Outlook.

3.1 Sign up and add your sender domain

  1. Sign up at app.smtp2go.com
  2. Go to Sending β†’ Verified Senders β†’ Sender Domains β†’ Add Sender Domain
  3. Enter yourdomain.com

SMTP2GO gives you 3 CNAME records to add in Cloudflare:

Type    Name                             Value
CNAME   em1234.yourdomain.com      β†’    em1234.smtp2go.net
CNAME   s1._domainkey.yourdomain.com β†’  s1.dkim.smtp2go.net
CNAME   track.yourdomain.com       β†’    track.smtp2go.net    ← optional

⚠️ Copy the exact values from your SMTP2GO dashboard β€” the above are examples only.

3.2 Add the CNAMEs in Cloudflare

DNS β†’ Records β†’ Add record for each CNAME:

  • Proxy status: DNS-only πŸ”˜ β€” email records must never be proxied (orange cloud off)

3.3 Wait for verification

Back in SMTP2GO β†’ Sender Domains β†’ wait for βœ… Verified (usually 5–15 minutes).

3.4 Create SMTP credentials

SMTP Users β†’ Add SMTP User β†’ save your username and password for the next step.


πŸ“§ Step 4 β€” Connect to Gmail or Outlook

Option A β€” Gmail "Send mail as"

  1. Gmail β†’ Settings βš™οΈ β†’ See all settings β†’ Accounts and Import
  2. Send mail as β†’ Add another email address
Name:           Your Name
Email address:  hello@yourdomain.com
β˜‘οΈ Treat as an alias
  1. Next Step β†’ SMTP configuration:
SMTP Server:   mail.smtp2go.com
Port:          587
Security:      TLS
Username:      your SMTP2GO username
Password:      your SMTP2GO password
  1. Gmail sends a verification code to hello@yourdomain.com β†’ arrives in your inbox via Cloudflare β†’ enter the code βœ…

πŸ’‘ No Gmail App Password needed β€” Gmail authenticates to SMTP2GO, not to itself.


Option B β€” Outlook / Apple Mail / Any client

Outgoing SMTP server:   mail.smtp2go.com
Port:                   587  (TLS)   or   465  (SSL)
Username:               your SMTP2GO username
Password:               your SMTP2GO password

If port 587 is blocked on your network, try: 2525 Β· 8025 Β· 80


πŸ›‘οΈ Step 5 β€” Add DMARC (Recommended)

Prevents spoofing of your domain. Takes 30 seconds. Do it.

Cloudflare β†’ DNS β†’ Add record:

Type:     TXT
Name:     _dmarc
Content:  v=DMARC1; p=none; rua=mailto:dmarc@yourdomain.com; fo=1; aspf=r; pct=100

Tighten the policy over time:

Week 1–4:    p=none        β†’ monitor only, nothing blocked
Month 2:     p=quarantine  β†’ suspicious mail goes to spam
Month 3+:    p=reject      β†’ full protection, spoofed mail blocked

πŸ“Š Use Cloudflare β†’ Email β†’ DMARC Management to read reports and know when it's safe to tighten.


βœ… Step 6 β€” Test Everything

Receive test:

Send any email to hello@yourdomain.com
β†’ Should arrive in your Gmail/Outlook within seconds βœ…

Send test:

Gmail β†’ Compose β†’ From: hello@yourdomain.com β†’ send to yourself
Check headers:
  βœ… SPF=pass
  βœ… DKIM=pass

Deliverability score:

  1. Visit mail-tester.com
  2. Send one email from your custom address to their test address
  3. Aim for 9/10 or 10/10 🎯

πŸ—‚οΈ DNS Records at a Glance

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚ Type   β”‚ Name                         β”‚ Content                     β”‚ Proxy    β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚ MX     β”‚ @                            β”‚ route1.mx.cloudflare.net    β”‚ DNS-only β”‚
β”‚ MX     β”‚ @                            β”‚ route2.mx.cloudflare.net    β”‚ DNS-only β”‚
β”‚ TXT    β”‚ @                            β”‚ v=spf1 include:_spf.mx...   β”‚ DNS-only β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚ CNAME  β”‚ em1234.yourdomain.com        β”‚ β†’ from SMTP2GO dashboard    β”‚ DNS-only β”‚
β”‚ CNAME  β”‚ s1._domainkey.yourdomain.com β”‚ β†’ from SMTP2GO dashboard    β”‚ DNS-only β”‚
β”‚ CNAME  β”‚ track.yourdomain.com         β”‚ β†’ from SMTP2GO (optional)   β”‚ DNS-only β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚ TXT    β”‚ _dmarc                       β”‚ v=DMARC1; p=none; rua=...   β”‚ DNS-only β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

↑ Top 3 rows added automatically by Cloudflare.
  SMTP2GO rows use YOUR exact values from the SMTP2GO dashboard.

πŸ”§ Troubleshooting

❌ Cloudflare says "Missing DNS records"

Go to Email β†’ Email Routing β†’ Settings and click "Enable Email Routing" β†’ "Add records and enable". Cloudflare adds the MX and SPF records automatically.

❌ Forwarded emails not arriving in Gmail

Since July 2025, Cloudflare requires the sending domain to pass SPF or DKIM before forwarding. This is the sender's issue, not yours β€” ask them to fix authentication on their mail provider.

❌ SMTP2GO error: "503 unable to verify sender address"

You're sending from a domain not yet verified in SMTP2GO. Go to Sending β†’ Verified Senders β†’ Sender Domains and finish verification first.

❌ Gmail verification code never arrived

Gmail sends the code to hello@yourdomain.com, which goes through Cloudflare forwarding. Make sure Step 2 is fully complete before starting Step 4 β€” routing must be enabled and destination must be verified.

❌ SMTP2GO CNAMEs won't verify
  • Set proxy to DNS-only (grey cloud πŸ”˜) in Cloudflare β€” not proxied
  • Copy values exactly from your SMTP2GO dashboard, not from this README
  • Wait 10–15 minutes and refresh

πŸ’‘ Good to Know

  • πŸ“¨ Receiving via Cloudflare is free with no limits whatsoever
  • πŸ“€ Sending via SMTP2GO free tier: 1,000 emails/month, 200/day
  • πŸ“¬ Add multiple addresses β€” hello@, info@, work@ β€” all to one inbox
  • πŸͺ€ Enable a catch-all in Cloudflare to catch any address on your domain
  • πŸ” Start DMARC at p=none, move to p=reject after 1–2 months of clean reports
  • 🚫 Never proxy email records in Cloudflare β€” always DNS-only for MX and CNAMEs

πŸ“š Resources

Resource Link
Cloudflare Email Routing Docs developers.cloudflare.com/email-routing
SMTP2GO Knowledge Base support.smtp2go.com
DMARC Management Cloudflare Dashboard β†’ Email β†’ DMARC
Deliverability Tester mail-tester.com
DNS Lookup Tool mxtoolbox.com/SuperTool

footer

⭐ Star this repo if it saved you from paying for email hosting!

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors