Email deliverability checklist

Magic-link emails are only useful if they reach the inbox. New sending domains face a "cold start" problem — Gmail/Outlook don't trust you yet. This page covers the checklist, ordered by importance.

1. Use a managed SMTP provider (recommended)

If you're not already running a mail server, use Postmark, Amazon SES, SendGrid, Mailgun, or Resend. They handle the hard parts (rDNS, IP reputation, feedback loops, bounce processing). You configure DNS once and forget it.

2. Set SPF, DKIM, and DMARC on your sending domain

These are the three modern email authentication mechanisms. Receivers cross-check them against your DNS to decide whether your mail is forged.

SPF

One TXT record at the apex telling receivers which IPs/services may send for you:

example.com.    TXT    "v=spf1 include:_spf.google.com -all"
# Or for SES:    "v=spf1 include:amazonses.com -all"
# Or for your own server:   "v=spf1 ip4:192.0.2.10 -all"
# Or via MX:    "v=spf1 mx -all"  (resolves MX records and uses their IPs)

DKIM

Your SMTP provider gives you a TXT record per selector. Add them all. SpeedyFiles itself doesn't sign — the SMTP server does (because the server has the private keys).

DMARC

One TXT record at _dmarc.example.com declaring your policy:

# Monitor-only (recommended to start)
_dmarc.example.com.   TXT   "v=DMARC1; p=none; rua=mailto:postmaster@example.com"

# After 2+ weeks of clean monitoring, tighten:
_dmarc.example.com.   TXT   "v=DMARC1; p=quarantine; pct=10; rua=..."

# Eventually:
_dmarc.example.com.   TXT   "v=DMARC1; p=reject; rua=..."

3. PTR / rDNS for your sending IP

If you're sending from a server you control (not a managed provider), the IP needs a PTR record pointing to a hostname that forward-confirms back to that IP. Without it, Gmail / Microsoft heavily penalize.

# Forward (your DNS):
mail.example.com.   A      192.0.2.10
# Reverse (set by your ISP / hosting provider):
10.2.0.192.in-addr.arpa.   PTR   mail.example.com.

Verify with dig -x 192.0.2.10 — should return mail.example.com.

4. HELO matches PTR

Set the HELO/EHLO hostname in SpeedyFiles → Settings → Mail to the same name your PTR resolves to. Mismatched HELO is a moderate spam signal.

5. Set Date and Message-ID

SpeedyFiles does this automatically. Verify by checking Show original in Gmail on a received message — both headers should be present and Message-ID should end in your sending domain (e.g. <abc...@example.com>).

6. Warm up new IPs / domains

A brand-new sending domain gets cold-start treatment. Strategies:

7. Register with postmaster tools

8. Use a real From address

Don't send as noreply@example.com if you can avoid it. Use files@example.com or support@example.com — addresses that can actually receive replies. Receivers' classifiers heavily weight whether mail looks like a legitimate two-way conversation.

9. Test before going live

10. Monitor

SpeedyFiles audit log records every magic-link hit. If a customer reports they didn't get a link, check /dash/packages/<id>: