Spam-score check
Available on Starter and above
An on-demand pre-send check that scores your subject + HTML body 0–10 for spam-trigger patterns and gives concrete fixes. Pure local heuristics — no third-party API call, no rate limit, runs in milliseconds.
Score is advice, not a gate. It never blocks sending. The point is to surface obvious issues (caps-lock subject, classic spam phrases, missing personalization, third-party URL shorteners) before you commit a 5,000-recipient send.
How to use
- Compose your mailing at
/mailing/compose. - Click Check spam score above the Send button.
- The badge appears next to the button:
- 0–3 — green, no obvious issues
- 4–6 — amber, review the flag list
- 7–10 — red, fix before sending
- The flag list below the score names each problem with a concrete fix.
- Edit your subject / body, click Check spam score again to re-run.
What it checks
Subject line
- Caps-lock ratio — subjects that are mostly uppercase trigger filters.
- Exclamation marks — more than two looks pushy.
- Classic spam phrases — "FREE", "WIN", "!!!", "AMAZING", "limited time", "act now", etc. (~50 entries.)
- Currency markers in the subject — "$", "£", "€" — especially with numbers.
- Length — under 30 chars looks like a phishing attempt; over 80 gets truncated by clients.
Body
- Caps-lock ratio — body-wide UPPERCASE.
- Exclamation density — one per paragraph max.
- Spam-trigger phrases — another ~80 entries scoped to body context.
- Image-to-text balance — image-only emails (no real text) are classic spam.
- Link density — more than ~10 links per 200 words is suspicious.
- Third-party URL shorteners — bit.ly, tinyurl, t.co etc. land in spam filters at higher rates than your own short links.
- Missing personalization placeholder —
{{FirstName}}/{{Email}}/{{Name}}in either subject or body, even unused, signals "this isn't a mass blast".
Worked example — rescue a borderline subject
Original subject: LIMITED TIME!!! GET YOUR FREE 50% OFF NOW
Score: 9 / 10. Flags:
- Subject is mostly uppercase
- Subject contains 3 spam-trigger phrases ("LIMITED TIME", "FREE", "NOW")
- Subject contains 3 exclamation marks
- No personalization placeholder anywhere
Rewritten: Hi {{FirstName}}, your 50% spring discount
Re-score: 1 / 10. Same offer, same urgency-by-context ("spring"), but Gmail lands it in Primary instead of Promotions.
What it doesn't check
- DNS authentication — SPF / DKIM / DMARC are checked at the Sender domain level, not per-mailing.
- Reputation — sender reputation is built over time by receiver feedback; there's no static analysis that can tell you what your IP / domain reputation looks like at Gmail. The throttling and warmup features protect that reputation while you build it.
- Per-receiver rules — Gmail and Outlook each have their own opaque filters; this is a baseline check, not a guarantee of inbox placement.
Related
- Email Mailing — compose page basics
- Sender domain — the structural deliverability lever (verifies SPF + DKIM + DMARC, signs with your reputation)
- Deliverability: throttling & warmup