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 |
|---|---|---|
| DNS + inbound email forwarding | Free forever | |
| Outbound sending via SMTP | Free (1,000/mo Β· 200/day) | |
| Your actual inbox | Your existing account |
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
- A domain you own β
GoDaddy,
Namecheap, or any registrar - A
Cloudflare account β free - An
SMTP2GO account β free - A
Gmail or
Outlook inbox to forward into
That's it. No server. No hosting. No credit card.
Know these before you start:
π¬ 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.
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
| Stage | Volume | Recommended Service | Est. Cost |
|---|---|---|---|
| π± Personal | < 1,000/mo | $0 | |
| π¬ Growing | up to 10,000/mo | ~$15/mo | |
| π Small Biz | up to 50,000/mo | ~$15β20/mo | |
| π’ Production | 100k+/mo | ~$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.comaddress stays exactly the same.
Cloudflare needs to manage your DNS. Your registrar stays the same β you just point it at Cloudflare's nameservers.
- Log in β dash.cloudflare.com
- Add a site β enter your domain β choose Free plan
- Cloudflare scans your existing DNS records β review and continue
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.
Makes hello@yourdomain.com forward to your real inbox β free, no receiving limits.
- Cloudflare Dashboard β Email β Email Routing β Destination addresses
- Add destination address β enter your Gmail or Outlook address
- Open the verification email Cloudflare sends and click the link β
- 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.
- 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.
Lets you send from hello@yourdomain.com through Gmail or Outlook.
- Sign up at app.smtp2go.com
- Go to Sending β Verified Senders β Sender Domains β Add Sender Domain
- 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.
DNS β Records β Add record for each CNAME:
- Proxy status: DNS-only π β email records must never be proxied (orange cloud off)
Back in SMTP2GO β Sender Domains β wait for β Verified (usually 5β15 minutes).
SMTP Users β Add SMTP User β save your username and password for the next step.
- Gmail β Settings βοΈ β See all settings β Accounts and Import
- Send mail as β Add another email address
Name: Your Name
Email address: hello@yourdomain.com
βοΈ Treat as an alias
- Next Step β SMTP configuration:
SMTP Server: mail.smtp2go.com
Port: 587
Security: TLS
Username: your SMTP2GO username
Password: your SMTP2GO password
- 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.
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
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
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.
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:
- Visit mail-tester.com
- Send one email from your custom address to their test address
- Aim for 9/10 or 10/10 π―
ββββββββββ¬βββββββββββββββββββββββββββββββ¬ββββββββββββββββββββββββββββββ¬βββββββββββ
β 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.
β 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
- π¨ 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 top=rejectafter 1β2 months of clean reports - π« Never proxy email records in Cloudflare β always DNS-only for MX and CNAMEs
| Resource | Link |
|---|---|
| developers.cloudflare.com/email-routing | |
| support.smtp2go.com | |
| Cloudflare Dashboard β Email β DMARC | |
| Deliverability Tester | mail-tester.com |
| DNS Lookup Tool | mxtoolbox.com/SuperTool |
