Dev.to WebDev 🛠 Dev 👁 0 📖 3 min read

I built a spam-check that reads your email like a tired filter would

InboxPrecheck is a paste-first checker for email before it goes out. You drop in a subject line and body, and it returns a scored pre-check: spam-trigger phrasing, format risks, CAN-SPAM structural gaps, and the risky bi

InboxPrecheck is a paste-first checker for email before it goes out. You drop in a subject line and body, and it returns a scored pre-check: spam-trigger phrasing, format risks, CAN-SPAM structural gaps, and the risky bits that make a tired inbox filter suspicious. I built it because most "why did this land in spam" questions are answerable by reading your own copy like a filter would — bored, literal, and quick to judge.

Filters do not read, they score

A content filter is not a person deciding your newsletter is evil. It tallies signals: all-caps.subject, "FREE!!!" density, link-to-text ratio, image-only bodies, a missing unsubscribe, a missing physical address. Most of those are countable. So the core of InboxPrecheck is a signal ledger, not a model guessing intent. It counts exclamation marks, measures the ratio of links to words, checks for the structural pieces CAN-SPAM expects, and flags phrases that appear constantly in known spam corpora.

A model, where used, only writes the summary sentence at the top. The scoring is rules, because the question "how many links and how many words" is arithmetic, and arithmetic is what a model should not be doing when the answer changes whether your mail gets read.

What the report shows

Three parts come back. Pre-check findings: the specific lines and ratios that pushed the score up. Fix checklist: concrete edits — cut the third exclamation mark, add a plaintext version, balance the link count, put the unsubscribe where it is actually visible. Decision-support framing: the score is a reason to revise, not a promise about where the mail lands.

Deliverability is a moving target. A clean report means your copy is not obviously fighting the filter; it does not mean Gmail will put you in the primary tab.

A concrete example: a launch email with a subject in ALL CAPS, three exclamation marks, two links and no plain-text twin will score high on every risk axis at once. None of those signals alone is fatal, but stacked they tell a filter the message looks like the thousands of bad ones it already rejects. The checklist orders the fixes by impact, not by appearance, so a missing unsubscribe jumps the queue ahead of a stray exclamation mark. I also flag image-only bodies, because a mail with no text and one big PNG gives the filter nothing harmless to weigh against the links. The InboxPrecheck page is honest about that, because the tool's value is removing the self-inflicted wounds, not guaranteeing the inbox.

What it cannot see

It reads text you paste. It cannot see your sender reputation, your authentication (SPF, DKIM, DMARC), your engagement history, or whether a previous campaign already trained recipients to ignore you. Those factors often outweigh copy. It also cannot predict a specific provider's algorithm, which changes without notice.

So the output is decision-support. The report is what you hand yourself or a teammate before send: "here are the five things in this draft that filters dislike". If deliverability is already a chronic problem, the answer is usually infrastructure and reputation, not copy — and the tool says so. The InboxPrecheck scan just makes sure the copy is not the easy part you skipped.

FAQ

What does InboxPrecheck actually measure?
Spam-trigger phrasing, link-to-text ratio, format risks like image-only bodies, and CAN-SPAM structural pieces such as a visible unsubscribe and sender address.

Will a clean score guarantee inbox placement?
No. It removes obvious copy-level risks. Sender reputation and authentication still dominate deliverability.

Does it check my SPF, DKIM, or DMARC?
No. It reads the pasted copy only. Authentication and reputation are separate from the text.

Is this legal advice about CAN-SPAM?
No. It is a heuristic pre-check for decision-support. Confirm compliance requirements with counsel.

📰 Read the original article on Dev.to WebDev

Originally published by Dev.to WebDev. Aggregated on AIWithGhost for educational purposes — full credit and traffic to the original publisher.