An email that lands in the spam folder is an email that was never read — even if the content was perfect. Email spam score is the number mail filters use to decide inbox vs junk: lower is better, with most systems (like SpamAssassin) marking 5.0 as the spam threshold on a 0-10+ scale. Checking the spam score before hitting send shows exactly which authentication, content, or reputation issues are adding points, so they can be fixed while the draft is still private.
This guide explains what spam score is, how filters calculate it, the factors that raise the score and by how much, and a 3-step workflow to test and fix before sending to a list.
.eml draft into an email spam score checker to get an instant 0-10 score, a breakdown of SPF/DKIM/DMARC and content rules fired, and fixes. Aim for 0-3 (inbox), fix authentication first (highest leverage), then rephrase spammy content and retest until the score drops.
What Is Email Spam Score and How Do Filters Decide?
Spam score is a numeric estimate of how "spammy" an email appears to automated filters. The most widely referenced system is Apache SpamAssassin, which sums points from dozens of rules — each rule adds (or subtracts) a weight, and the total determines the verdict.
- 0-3: Inbox — delivered normally
- 4-6: Caution — may be flagged, especially with low reputation
- 7-10+: Junk or blocked — filtered or rejected
SpamAssassin's default threshold is 5.0; Gmail, Outlook, and other providers use similar signals plus machine learning and engagement data, but the rule weights remain highly correlated with inbox placement. Each point typically represents one triggered rule: "Act now!!!" might be +1.5, missing SPF +2.0, a URL shortener +1.2 — summing to 4.7 and putting the email on the edge. Fixing any one can bring it back to inbox.
The 3 Authentication Pillars (Must-Pass)
These DNS-based checks are the highest leverage — they alone can move the score by 3-5 points:
- SPF (Sender Policy Framework): DNS TXT record listing authorized senders —
v=spf1 include:_spf.google.com ~all. Pass means the sending IP is permitted for the domain; fail adds ~+2.0. - DKIM (DomainKeys Identified Mail): Cryptographic signature in the header —
DKIM-Signature: v=1; d=example.com; s=selector— proving the message was not altered. Fail adds ~+1.5 and can cause DMARC failure. - DMARC (Domain-based Message Authentication): DNS policy telling receivers what to do if SPF or DKIM fails —
v=DMARC1; p=quarantine;. Missing DMARC adds ~+1.0 and leaves the domain without a policy.
When all three pass, the score gets a bonus of -2 to -3, making inbox likely even if content is slightly spammy. When all three fail, even clean content lands in junk.
What Increases Spam Score — And How Much
Content — Words and Formatting
- "Act now!!!", "FREE!!!", "Buy now" — +1.0 to +2.5
- ALL CAPS subject — +1.5
- Excessive !!! or ??? — +1.0
- URL shortener (bit.ly) — +1.2 (mismatched display vs real URL is +2.5)
- Image-only email (no text) — +2.0
Fix: plain language, one clear CTA, real URLs (not shorteners), and a balanced text-to-image ratio.
Authentication and Reputation
- No SPF +2.0, no DKIM +1.5, no DMARC +1.0
- IP on a blacklist (e.g., Spamhaus) +4.0
- High bounce rate or new domain with no history — filtered despite low score
Fix: set up SPF/DKIM/DMARC once in DNS before sending bulk — the single biggest improvement.
Structure and Technical
- Missing List-Unsubscribe header +0.8
- No plain-text alternative (HTML only) +0.7
- Large image-to-text ratio or broken HTML +1.0
- Risky attachments (.exe, .zip containing .exe) +3.0
The score tallies hits — fixing the top 2 rules often drops the total from 7+ to 1-2.
How to Check Email Spam Score Before You Send — 3 Steps
- Paste the raw email: Copy the full source including headers (From, Subject, To) and body, or upload the
.emldraft exported from the email client. Raw source is needed to check SPF/DKIM/DMARC — a plain body copy cannot validate authentication. - Get the score and breakdown: The checker returns an overall 0-10 score with a verdict (Inbox / Caution / Junk) plus a rule-by-rule breakdown: which rules fired, how many points each added, and which authentication checks passed. This is more actionable than just sending a test to Gmail, where the filter is ML plus engagement and the reason for filtering is opaque.
- Fix and retest: Address the top 1-2 issues (usually one authentication plus one content phrase), re-paste, and verify the score drops — for example, 7.8 → 1.2 after fixing SPF and rephrasing "Act now!!!" to "Available this week" and replacing
bit.lywith the real URL. Iterate in small steps; fixing in batches makes it harder to see which change helped.
Why not just send a test to Gmail? Gmail's filter is not a fixed ruleset — it includes machine learning and per-recipient engagement. A test that lands in one inbox may land in another's spam. A score checker shows the underlying reasons before the email touches any recipient's reputation.
Testing requires no sending — the draft is evaluated locally from the pasted source, so sender reputation is not risked and no test list is needed.
How to Fix a High Spam Score — Before and After
Example: From 7.8 (Junk) to 1.2 (Inbox) in 3 Edits
| Before (7.8) | After (1.2) | Points Saved |
|---|---|---|
| Subject: FREE!!! Act now!!! Limited offer!!! | Subject: Q4 Update: New features available | -2.5 |
| Body: Click here: bit.ly/abc123 | Body: Learn more: example.com/q4-update | -1.2 |
| From: noreply@newdomain.test (no SPF/DKIM) | From: anna@example.com (SPF ✓ DKIM ✓ DMARC ✓) | -2.0 |
| HTML only, image-only | HTML + plain text, balanced text/image | -2.7 |
Fix in priority order:
- Auth first (highest leverage): Add SPF, DKIM, DMARC in DNS — saves ~3 points, one-time setup
- Content next: Rephrase spammy phrases, remove ALL CAPS and !!!, use real URLs
- Structure: Add plain-text alternative, List-Unsubscribe header, compress images, avoid risky attachments
Authentication is ~60% of the battle: perfect content fails without it, while imperfect content often passes with it.
Email Spam Score vs Deliverability — What the Score Means
Score is an estimate, not a guarantee — but it correlates strongly with inbox placement. Gmail and Outlook add engagement signals (opens, replies, spam complaints) on top, so a low score plus poor list hygiene (high bounces, no opt-in) can still filter. Conversely, a borderline score with strong reputation may still inbox for engaged recipients. The score is the controllable part before sending; reputation is built over time.
Per Spamhaus and Sender Score, IP and domain reputation are tracked separately. A checker that also queries blacklists catches the +4.0 case where the sending IP itself is the problem, regardless of content.
Best Practices to Keep Spam Score Low
- Authenticate before bulk: SPF, DKIM, and DMARC must be in DNS before the first campaign — not after.
- Warm up new domains: Start with small, engaged segments and scale; new domains have no reputation and are filtered more aggressively.
- Maintain list hygiene: Remove bounces and unsubscribes promptly; high bounce rates poison future deliverability.
- Use double opt-in and List-Unsubscribe: The List-Unsubscribe header (+ List-Unsubscribe-Post) lets recipients opt out without marking as spam, protecting reputation.
- Balance HTML and text: Always include a plain-text alternative; keep image-to-text ratio low and avoid single-image emails.
- Test every campaign: Re-paste after each fix to see the delta — small edits cause big score drops. Don't batch 10 fixes then test.
FAQs About Email Spam Score
What is a good email spam score?
0-3 is good (inbox). 4-6 is borderline and may be flagged with low reputation. 7-10+ is poor and likely filtered. SpamAssassin's default spam threshold is 5.0.
How do I check my email's spam score without sending it?
Paste the raw email source (headers + body) or upload the .eml draft into a spam score checker. The tool evaluates SPF/DKIM/DMARC, content, and structure and returns a 0-10 score with a rule breakdown — no sending required.
Does Gmail use SpamAssassin scores?
Not directly — Gmail uses its own ML plus authentication, content, and engagement signals. However, SpamAssassin rules track the same underlying factors, so the score remains a reliable proxy for inbox placement.
Why did my email go to spam even with a low score?
Likely reputation: the sending IP or domain is on a blacklist, the list has high bounces or spam complaints, or the recipient previously marked similar mail as spam. Check blacklists and list hygiene in addition to the score.
How do I lower my spam score quickly?
Fix authentication first (SPF/DKIM/DMARC in DNS), then rephrase spammy subjects ("FREE!!!"), replace shorteners with real URLs, add a plain-text alternative, and ensure a text balance rather than image-only. Retest after each 1-2 fixes.
Should I check spam score for every campaign?
Yes — content, links, and headers change per campaign, and the score reflects those changes. Testing takes under a minute and prevents deliverability damage that is hard to reverse after sending to a list.
Conclusion
Email spam score is the controllable, testable part of deliverability. A quick check before sending — with a breakdown of which rules fired and by how much — turns "why did it go to spam?" into "fix these two things and retest." Authentication first, then content, then structure is the priority that moves the needle fastest.
Test the next draft before hitting send — paste the raw source, review the score and fixes, and iterate until the verdict is inbox.