Self-hosted email landing in spam is almost always caused by one of five issues: missing or misconfigured authentication (SPF, DKIM, DMARC), blacklisted IP address, missing or wrong PTR (reverse DNS) record, new IP without warmup, or content triggering spam filters. Check authentication first (mail-tester.com gives you a score), then IP reputation (MXToolbox blacklist check), then PTR record, then content. Most issues are fixable in under an hour.
Self-Hosted Email Goes to Spam: Complete Troubleshooting Guide
Self-Hosted Email in Spam: Systematic Diagnosis
When your self-hosted email hits spam, resist the urge to change random settings. Follow this diagnostic sequence — each step builds on the previous one, and fixing issues out of order wastes time.
Step 1: Check Authentication (5 Minutes)
Send a test email to Gmail and check the raw headers (three dots → Show original):
Authentication-Results: mx.google.com;
spf=pass (google.com: ...);
dkim=pass (test mode);
dmarc=pass (p=REJECT)
All three must show pass. If any show fail or none, refer to our authentication guide and DNS configuration:
| Result | Fix |
|---|---|
| spf=fail | Add your server IP to your SPF record |
| spf=none | Create an SPF TXT record |
| dkim=fail | Check DKIM key in DNS matches your server's signing key |
| dkim=none | Configure DKIM signing in your MTA and add DNS record |
| dmarc=fail | SPF and/or DKIM aren't aligning with your From: domain |
| dmarc=none | Add a DMARC TXT record |
For detailed auth fixes, see DKIM not passing.
Or use mail-tester.com — send an email to their test address and get a 10-point score with specific issues highlighted.
Step 2: Check IP Reputation (5 Minutes)
Run your server's IP through blacklist checks:
https://mxtoolbox.com/blacklists.aspx
If your IP is listed on any major blacklist (Spamhaus, Barracuda, SORBS), that's likely your primary issue. See IP blacklisted troubleshooting for delisting steps.
Also check reputation tools:
- Google Postmaster Tools — shows your domain/IP reputation at Gmail
- Microsoft SNDS — shows your IP reputation at Outlook
- Talos Intelligence — Cisco's reputation lookup
Step 3: Verify PTR Record (2 Minutes)
Your server's IP must have a PTR (reverse DNS) record that matches your mail server hostname:
dig -x YOUR.SERVER.IP +short
# Should return: mail.yourdomain.com.
If the PTR is missing, wrong, or points to your VPS provider's default hostname (like vps12345.provider.com), many receiving servers will reject or spam your email.
Fix: Set the PTR record in your VPS provider's control panel. See PTR record setup.
Step 4: Check IP Warmup Status (Assessment)
New IPs have no reputation — which mailbox providers treat as suspicious. If your server is less than 2-4 weeks old and you're sending more than a few dozen emails per day, you're likely hitting warmup-related filtering.
Signs of warmup issues:
- Email delivers to some providers but not Gmail
- Small volumes deliver fine, larger volumes go to spam
- 4xx deferral codes in your Postfix logs
Fix: Reduce volume and increase gradually. See warmup self-hosted IP.
Step 5: Content Analysis (10 Minutes)
If authentication, IP, PTR, and warmup are all fine, check your email content:
- HTML-to-text ratio — include a plain-text version
- Image-to-text ratio — don't send image-only emails
- Spammy words — "free," "guarantee," "act now" in subject lines
- Link quality — shortened URLs (bit.ly) trigger filters
- Tracking domain — shared tracking domains may be flagged
- Sender name — use a recognizable, consistent sender name
Step 6: Server Configuration
Less common but worth checking:
- HELO/EHLO hostname — must match your PTR and MX records
- Postfix configuration —
myhostnameshould be your FQDN - TLS — ensure STARTTLS is configured (see TLS in email)
- Open relay — verify your server isn't an open relay (test at mxtoolbox.com/diagnostic.aspx)
# Check Postfix hostname
postconf myhostname
# Should match your PTR record
Common Fixes Summary
| Issue | Fix Time | Impact |
|---|---|---|
| Missing SPF | 5 minutes (DNS) | Immediate |
| Missing DKIM | 15 minutes | Immediate |
| Missing DMARC | 5 minutes (DNS) | Immediate |
| Missing PTR | 5 minutes (VPS panel) | 1-24 hours |
| Blacklisted IP | 10 minutes + waiting | 24-48 hours |
| No warmup | Ongoing (2-4 weeks) | Gradual |
| Bad content | Per-email | Immediate |
| Wrong EHLO | 5 minutes (Postfix config) | Immediate |
Practitioner note: Nine times out of ten, self-hosted email going to spam is an authentication issue. I've seen people spend days tweaking content and headers when the real problem was a DKIM key that didn't match DNS. Always check authentication first — it takes five minutes and rules out the most common cause.
Practitioner note: The second most common cause I see is inherited IP reputation. People deploy Mailcow on a new VPS, skip the blacklist check, and wonder why everything hits spam. The IP was blacklisted before they ever sent a single email. Always, always check the IP before installing anything.
If you've worked through this checklist and email still goes to spam, schedule a consultation — I'll do a full diagnostic of your mail server, authentication, reputation, and content to identify the root cause.
Sources
- Google: Email Sender Guidelines
- MXToolbox: Blacklist Check
- mail-tester.com: Test Your Email
- Microsoft: SNDS
v1.0 · April 2026
Frequently Asked Questions
Why does my self-hosted email go to Gmail spam?
Check in this order: 1) SPF, DKIM, DMARC all pass (check email headers). 2) IP not blacklisted. 3) PTR record matches your mail hostname. 4) IP is warmed (new IPs need gradual volume increase). 5) Google Postmaster Tools shows your domain/IP reputation. Gmail is the strictest provider — fix Gmail and everything else usually follows.
How do I check if my mail server authentication is correct?
Send an email to [email protected] or use mail-tester.com. Both return a detailed report showing SPF, DKIM, and DMARC pass/fail status, plus additional checks. Or view raw email headers in Gmail (Show Original) and look for spf=pass, dkim=pass, dmarc=pass.
My authentication all passes but email still goes to spam. Why?
Authentication passing doesn't guarantee inbox. Check: IP reputation (blacklists), domain reputation (Google Postmaster Tools), email content (spammy words, image-heavy, no text), sending patterns (too much volume too fast), or the IP is too new (needs warmup).
How long does it take to fix self-hosted spam issues?
Authentication fixes take effect immediately. Blacklist delisting takes 24-48 hours. IP warmup takes 2-4 weeks. Domain reputation recovery takes 1-4 weeks depending on severity. The fastest fix is always authentication; the slowest is reputation recovery.
Want this handled for you?
Free 30-minute strategy call. Walk away with a plan either way.