Email Spam Checker

Know your spam score before you send.

Scan any HTML email with SpamAssassin — the same open-source engine mail servers use — and see a full per-rule breakdown of exactly what's pushing your score up or down.

Check your spam score See the rules

👋 Free with an account · part of the free Email Readiness score

How scoring works

One number, every rule that built it.

SpamAssassin tests the email against hundreds of rules. Each rule that fires adds or subtracts points — the running total is your spam score. The standard pass threshold is 5.0: stay below it and most mail servers won't flag the content itself.

The report doesn't just show the number — it lists every rule that fired, its individual contribution (positive = bad, negative = good), and a plain-English description, so you know exactly what to change.

The spam check is one of five checks (23 of 100 points) in the Email Readiness score — free with an account, alongside compatibility, accessibility, and QA.

The rules

What's actually in the report.

SpamAssassin runs hundreds of rules — these eight categories cover the ones that show up most often in real email QA reports.

HTML structure
  • HTML_MESSAGEEmail uses HTML — expected, low-weight rule.
  • MIME_HTML_ONLYNo plain-text alternative. Consider adding a text/plain part for better deliverability.
  • HTML_FONT_LOW_CONTRASTText colour is very close to background colour — a classic spam obfuscation trick.
  • HTML_MIME_NO_HTML_TAGHTML content is missing the <html> wrapper tag.
Links
  • HTTPS_HTTP_MISMATCHA link displays HTTPS but the actual href is HTTP (or vice versa).
  • HTTP_ESCAPED_HOSTA URL uses an encoded hostname to disguise its destination.
  • URI_HEXA URL contains hex-encoded characters — often used in phishing links.
  • HTML_SHORT_LINKContains a shortened URL (e.g. bit.ly), which spam filters frequently flag.
Missing headers
  • MISSING_SUBJECTNo Subject line. In a real send, always set a subject.
  • MISSING_MIDNo Message-ID header — ESPs add this automatically on real sends.
  • MISSING_DATENo Date header — also added by ESPs on real sends.
  • MISSING_FROMNo From header.
Sender authentication
  • SPF_NONEThe sending domain has no SPF record — receiving servers can't verify the sender.
  • SPF_FAIL / SPF_SOFTFAILSPF check failed, or soft-failed — the sending server isn't (fully) authorised by the domain.
  • DKIM_INVALIDA DKIM signature is present but failed validation.
  • DKIM_SIGNEDEmail carries a valid DKIM signature — beneficial, negative score.
Bayesian classifier
  • BAYES_0099%+ confident not spam — large negative score, very beneficial.
  • BAYES_05 / BAYES_20Likely not spam.
  • BAYES_50Uncertain.
  • BAYES_80 / BAYES_95 / BAYES_99Likely or almost certainly spam — high positive scores.
Network reputation
  • RAZOR2_CHECK / PYZOR_CHECK / DCC_CHECKContent matches a known spam fingerprint in a shared database. Only fires if this exact content was previously reported.
  • URIBL_BLOCKEDA DNS blocklist query was blocked — common in sandboxed environments, not necessarily a real spam signal for a preview test.
Compliance
  • MISSING_UNSUBSCRIBENo unsubscribe link detected — penalised by SpamAssassin and required by CAN-SPAM / GDPR for commercial email.
Informational — expected in preview
  • NO_RECEIVEDNo email routing headers — expected, since MailViewr submits HTML directly, not via SMTP.
  • NO_RELAYSNo relay chain info — same reason as above. Both carry zero or negative score.

Don't chase these in a preview

SpamAssassin tests the HTML body in isolation — without real From/To headers, SMTP metadata, or sender reputation. Rules like NO_RECEIVED, NO_RELAYS, MISSING_SUBJECT, MISSING_FROM, MISSING_DATE, MISSING_MID will almost always fire in any preview context. They carry zero or negative score and are noted as expected — a SpamAssassin pass (score under 5.0) is necessary but not sufficient for inbox delivery on its own; domain reputation and SPF/DKIM/DMARC alignment matter just as much.

FAQ

Questions, answered.

Below 5.0. SpamAssassin sums the score of every rule that fires — positive scores push toward spam, negative scores (like a clean Bayesian read) pull away from it. Scores at or above 5.0 are treated as spam by most mail servers.

The spam check is free with a free account — it's one of the five checks in the Email Readiness score. Preview, the HTML editor, and MJML tooling stay free — 5 previews before you need to sign in.

No. SpamAssassin scores the HTML body in isolation, without real From/To headers, SMTP metadata, or sender reputation. Rules like NO_RECEIVED, NO_RELAYS, MISSING_SUBJECT, MISSING_FROM, MISSING_DATE, and MISSING_MID almost always fire in any preview context and carry zero or negative score — they're expected, not something to fix.

No — it's necessary but not sufficient. A SpamAssassin pass tells you the content itself isn't triggering spam heuristics; actual delivery also depends on sending-domain reputation, SPF/DKIM/DMARC alignment, and list hygiene, which are outside what a content check can see.

Write it. Check it. Ship it clean.

Paste your HTML into the Email Builder and get a real SpamAssassin score with the full rule breakdown.

Open the Email Builder Free HTML Email Preview