How to use: Paste a real email you're about to send (newsletter, transactional, marketing) and check the score. Anything below 3.0 is generally fine. Above 5.0 will likely land in spam folders. Above 10.0 will be rejected outright by most filters.
/ spam = 5.0+

About this tool

What gets scored

The scorer applies ~35 rules across four categories, each contributing positive (spammy) or negative (anti-spam) points. The total is the spam score. Rules are modeled on SpamAssassin's rule philosophy but use a simplified ruleset focused on the most common modern spam patterns.

  • Subject-line rules — ALL CAPS, excessive exclamations, money + urgency combos, "FREE!", lottery/prize claims, pharmaceutical keywords, emoji-stuffing
  • Body content rules — phishing language ("verify your account", "unusual activity"), urgency language, generic greetings ("Dear Customer"), pharmaceutical/adult terms, crypto pitches, advance-fee scams
  • HTML rules — image-only emails, hidden text (white-on-white, display:none), HTML forms inside the message, excessive font/style tags
  • Link rules — shortened URLs (bit.ly/tinyurl), bare-IP URLs, mismatched display text vs href

Score interpretation

ScoreVerdictWhat happens
< 3.0Likely legitimateLands in inbox at most providers
3.0 – 4.9Borderline / suspiciousMay get spam-foldered at strict providers
5.0 – 9.9Likely spamSpam folder at most providers (SpamAssassin's default reject threshold)
10.0+Almost certainly spamRejected outright by most filters

What this tool can not see

This is a content-only analyzer. The score it produces is one input among several that real spam filters (Gmail, Outlook, ProtonMail) use. It can't see:

  • Sender IP reputation — use the DNSBL Blacklist Check for that
  • SPF, DKIM, or DMARC results — use Email Header Analyzer after sending a test, or Email Health Check for the sending domain
  • Sender domain reputation — accumulated by spam filters over time
  • Engagement signals — open rates, click-through, complaint rates from past sends
  • Recipient-specific filters — corporate filters can be much stricter than consumer providers

A score of 0 here doesn't guarantee inbox delivery. A score of 3 doesn't guarantee spam. But a score of 8+ is almost always going to spam regardless of other factors.

Privacy

The email content you paste is sent to the worker for analysis and immediately discarded — nothing is logged or stored. Don't paste anything containing customer PII, account credentials, or genuinely confidential material; while we don't keep it, the network path between you and the worker isn't end-to-end encrypted beyond TLS to Cloudflare.

Pro tip

Run your draft email through this tool, then if it scores above 3 try removing one trigger at a time and re-scoring. Most "why is my newsletter going to spam" issues are 2-3 specific rules firing — usually SUBJ_ALL_CAPS, BODY_CLICK_HERE, and BODY_GENERIC_GREETING stacking up. Personalize the greeting and rephrase the call-to-action and the score usually drops below 3.

How spam scoring actually works

Spam filters used across the industry — SpamAssassin, various commercial filters, the internal filters that Gmail and Outlook run — all operate on the same underlying pattern. They apply a set of rules to each incoming message, add up the score for every rule that matches, and compare the total to a threshold. Messages above the threshold get flagged, quarantined, or rejected. Messages below get delivered normally.

Different filters use different rule sets and different weights, but the pattern is the same. This tool implements a subset of SpamAssassin's rules to give you a rough score for a message before you send it, so you can see which patterns in your writing are triggering spam filters and adjust before hitting send. It's useful for newsletter authors, marketing operators, and anyone who's been mystified by why a specific message pattern keeps landing in junk.

What the score actually means

Scores are additive. A message might trigger three different rules for +2, +1, and +0.5, giving a total of +3.5. That total then gets compared to a delivery threshold. SpamAssassin's default threshold is 5.0 — anything above that gets marked as spam. Different receivers use different thresholds and different rule sets, so a message that scores 4.5 might land in inbox at one provider and junk at another.

Some rules also produce negative scores (SPF passes, DKIM verifies, message is from an established sender). A message can trip several "spammy" rules but have enough negative signal to still land below the threshold.

The major rule categories

Subject line patterns

Subject lines are heavily-weighted for spam detection because they're the first thing recipients see and spammers optimize aggressively for open rates. Common patterns that add to the score:

  • ALL CAPS in the subject line (or a large fraction of caps)
  • Excessive exclamation marks or question marks
  • Words like "FREE," "URGENT," "ACT NOW," "LIMITED TIME"
  • Dollar signs and money references without context
  • Fake reply prefixes ("Re: " when the message isn't actually a reply)
  • Suspicious character substitutions ("V!AGRA", "M0NEY")
  • Unusual Unicode characters that look like normal letters

Legitimate marketing mail sometimes trips these rules by trying too hard for open rates. Testing subject lines before sending catches the ones that are working against themselves.

Body text patterns

Similar rules apply to body text but with more weight on aggregate patterns rather than specific phrases. A body that's entirely one huge image (with no text) trips a rule. Excessive HTML formatting relative to actual content trips a rule. Common phishing phrases trip rules.

Formatting and encoding

Messages that use unusual character encodings, that have HTML and plain-text parts that don't match, that have oddly-formatted MIME structure, that use rare content transfer encodings — all of these trip rules. Legitimate mail uses standard formats; deviating from those is a signal.

Link and attachment patterns

URL shorteners (bit.ly, tinyurl.com), links where the visible text doesn't match the actual URL, attachments with executable extensions, attachments with double-extensions (invoice.pdf.exe), links to newly-registered domains — all of these get flagged.

Sender-authentication signals

Missing SPF, failed DKIM, no DMARC alignment — each subtracts from the "this is legitimate" side of the score. A message with clean SPF/DKIM/DMARC has a meaningfully lower base score than the same message content sent without authentication.

Rules that catch common patterns

Sales-y language

Aggressive sales language ("LIMITED TIME," "act now," "click here to save") reliably trips multiple rules. This isn't because filters are picky — it's because spam mail uses these phrases disproportionately, so a well-tuned filter learns to weight them heavily. Legitimate mail that must use similar phrases (real limited-time offers) can be careful with formatting to reduce the aggregate impact.

Fake reply subjects

Adding "Re:" to a subject that isn't a reply is a classic spam pattern. Similarly for "Fwd:". Filters recognize this as an attempt to make cold outreach look like an ongoing conversation and score it accordingly.

All-caps or mixed-case emphasis

ALL CAPS SUBJECT LINES trigger multiple rules. Random cAmEl CaSe as an attempt to bypass caps-detection triggers different rules. Consistent normal capitalization avoids both.

Excessive punctuation

"Amazing!!!" and "Really???" get flagged. One exclamation point is fine; a string of them is not.

Currency symbols in unusual places

$$$$$ or "€€€" as visual emphasis reads as spam. Referring to prices normally ("costs $99") does not.

Hidden text and background-color tricks

HTML that includes hidden text (visibility:hidden, color matching background, tiny font sizes) trips rules aggressively because these are classic spam tricks to include keywords without them being visible.

Image-only messages

A message with no meaningful text content, only images with text baked in, is a classic pattern to evade text-based spam filters. Filters recognize the pattern and penalize accordingly.

How to write messages that score well

Use normal punctuation and capitalization

Write like a person, not like a used-car ad. Normal sentences, normal punctuation. This alone puts you ahead of most spam.

Include real text content, not just images

Every marketing message should have substantive text content in addition to any images. This helps deliverability, accessibility, and lets recipients using text-only or accessible mail clients actually read the message.

Match your visible text to your actual links

"Click here to learn more" with a link that goes to your legitimate landing page is fine. "Click here to see your bank statement" with a link that goes to a phishing site trips security-focused rules aggressively. Filters check the mismatch pattern regardless of whether the actual link is legitimate.

Send from a properly-configured domain

SPF, DKIM, and DMARC in place. Consistent sending IP or set of IPs. Established reputation on those IPs. This is the highest-leverage improvement for any high-volume sender.

Don't buy email lists

Purchased lists have high bounce rates and complaint rates, which damage your sending reputation quickly. Even if the specific messages score well by content, the aggregate reputation of a sender with a purchased list gets tanked and everything lands in junk.

Include a clear unsubscribe link

Bulk mail without a clearly visible unsubscribe path violates most anti-spam laws and trips filters. Include a real unsubscribe link that actually works. Use List-Unsubscribe headers so that mail clients can offer one-click unsubscribe.

What this tool can't tell you

Whether specific major providers will accept the message

Gmail, Outlook, Yahoo, and other major providers use their own proprietary filters with their own rules. This tool implements a subset of SpamAssassin patterns which correlate with but don't perfectly predict what any specific provider will do. A message that scores well here can still land in Gmail's junk if you have poor sender reputation or trip a Gmail-specific rule.

Your sender reputation

The tool scores message content in isolation. Real deliverability depends heavily on your domain's and IP's reputation history, which the tool has no visibility into.

Whether the message will be commercially effective

Some legitimate mail deliberately uses attention-grabbing language that trips spam filters. If you're okay with lower deliverability rates in exchange for higher open rates on the mail that does land in inbox, that's a valid tradeoff for some marketing campaigns. The tool tells you the technical spam score, not the marketing effectiveness.

Common misconceptions

"Spam filters use magic AI to detect spam"

Modern filters use machine learning models in addition to rule-based scoring, but the core patterns match rules similar to the ones this tool checks. AI adds sophistication but doesn't replace the underlying signals.

"My mail will always land in inbox because I have SPF and DKIM"

SPF and DKIM prevent forgery. They don't guarantee delivery. Legitimate sender with clean auth records and a spammy content pattern still lands in junk.

"If my score is under 5, my mail will definitely deliver"

SpamAssassin's threshold is 5. Different receivers use different thresholds and different rule sets. A message scoring 3 with this tool might still be flagged by Gmail if it trips Gmail-specific rules the tool doesn't check.

Related tools

To check your domain's authentication configuration (SPF, DKIM, DMARC, MX), use the Email Health Check. To check whether the IP your mail server sends from is on any known blocklists, use the DNSBL Blacklist Check. Combined, these three tools cover most of the deliverability picture for a sending domain.

For troubleshooting a specific message that already got flagged, the Email Header Analyzer shows the exact authentication results at the receiving server and any spam-scoring headers the receiver added.

Privacy

The spam score check runs entirely in your browser. Message content you paste is not sent to any server. This matters because email content often contains information you shouldn't send to third parties — personalization data, internal references, customer information. Everything stays local. You can verify by opening browser developer tools before pasting and confirming no network activity when you click check.