Spam trigger words: what actually scores (and what doesn't)
The myth of the trigger-word list, the small set of phrases that genuinely matter, and how SpamAssassin actually weights content.
Every "500 spam words to avoid" listicle is half wrong. SpamAssassin doesn't have a magic word list; it has a few hundred rules that score on patterns, context, and combinations. Knowing how the engine actually thinks lets you write effective subject lines without typing around imaginary tripwires.
How SpamAssassin scores content
Each rule has a name (HTML_IMAGE_ONLY_28, MISSING_HEADERS, etc.) and a numeric weight. A message's total score is the sum of triggered rules. Above 5.0 is typically marked spam; the threshold is configurable per receiver.
| Category | Typical weight | Examples |
|---|---|---|
| Structural | 1.0β4.0 | Image-only, missing headers, broken MIME |
| Authentication | 1.0β3.5 | DKIM fail, SPF fail, DMARC fail |
| URL/link | 0.5β3.0 | URL shorteners, mismatched anchors, raw IPs |
| Vocabulary | 0.05β1.5 | Trigger phrases, all-caps, exclamations |
| Bayesian | β1.5 to +3.5 | Learned per-receiver, hardest to predict |
The phrases that actually score
| Rule | Trigger | Weight |
|---|---|---|
UPPERCASE_50_75 | Subject is mostly UPPERCASE | 1.4 |
SUBJECT_EXCESS_QP | 5+ exclamations or question marks | 1.0 |
MONEY_BACK | "100% money back" + close keywords | 1.0 |
URGENT_ACTION_NEEDED | "Act now" + "limited time" + others | 0.8 |
FREE_OFFER | "Free" near "offer" near "call now" | 0.8 |
PYZOR_CHECK | Body matches known spam corpus | 1.5 |
Notice the pattern: most content rules require a combination of signals to fire. "Free" alone is fine. "FREE!!! Act now! Limited time!!" stacks five rules.
What the listicles get wrong
- "Click here" β not a trigger. Used in millions of legitimate emails daily.
- "Buy now" β fine in context. Triggers only when stacked with urgency phrases.
- "Cash" β neutral. Spam phrasings are more specific ("cash bonus," "cash prize").
- "Discount" β common in legitimate retail mail. Not scored.
- "Sale" β fine. Subject "50% OFF SALE!!!" is the problem, not "sale."
What you should actually avoid
- ALL CAPS subjects. Even partial capitalization (>50%) triggers
UPPERCASE_50_75. - Multiple exclamation marks in subject or first paragraph.
- Stacked urgency phrases. "Act now," "limited time," "don't miss out" within the same paragraph.
- Dollar amounts in the subject when paired with urgency. "$5,000 today!" hits multiple rules.
- "You've won" / "You're a winner" β strongly weighted as common phishing pattern.
Structural problems you should care about more
| Rule | Trigger | Weight |
|---|---|---|
HTML_IMAGE_ONLY_28 | HTML body is mostly images | 2.5 |
MIME_HTML_ONLY | No plain-text alternative | 0.7 |
MISSING_DATE | No Date: header | 1.5 |
MISSING_MID | No Message-ID header | 1.0 |
HIDDEN_TEXT | white-on-white or display:none text | 3.0 |
URI_HEX | URLs encoded with hex | 2.0 |
Testing without guessing
- Send your draft through WillItInbox. The content category breaks out every triggered rule with weights.
- For raw SpamAssassin: pipe a test message through
spamassassin -tand read the rule output. - Use mail-tester.com for a quick second opinion.
- Iterate one variable at a time β change subject, re-test, then change body. Combined changes obscure cause and effect.
Frequently asked questions
Keep reading