Why this is worth ten minutes
A newsletter that lands in Promotions still counts as delivered. Your sending platform reports 99% delivery and shows you nothing else. The distance between "delivered" and "read" is where campaigns quietly die, and nothing on your side of the send is looking at it.
Most of what decides that distance is technical, and none of it is visible from where you are standing: a DNS record with a syntax error, a header the receiving server expected and did not find, an IP address somebody else burned last month (a neighbour on shared hosting, or whoever had it before you).
What comes back
The sample report, cut down to fit here. Yours has the same sections: all 42 checks with their evidence, the message we received, every link followed to the end, and the fix plan.
notes in orange are mine, so you know what to look for
Headed for Promotions, and some copies to spam.
The message lacks standards-compliant unsubscribe headers, DMARC is monitoring-only, and filters found moderate spam signals. This leaves the domain open to spoofing and raises filtering, complaint and bulk-sender risk.
← two scores, and beside them the 14 of 32 real mailboxes that put it in the inbox.
Where it actually landed
INBOX PLACEMENT · 32 REAL MAILBOXES← in this sample, 32 mailboxes at 12 providers. Gmail filed 12 of its 20 copies under Promotions.
Fix these 3 things first
ranked by impact · together they move you from 54 to about 83There is no List-Unsubscribe and no one-click unsubscribe. Gmail and Yahoo require both for bulk mail, and people who cannot leave press “Report spam”.
fixes 2 checksList-Unsubscribe-Post: List-Unsubscribe=One-Click
p=none asks receivers to do nothing about spoofed mail. Check that every service sending as luupiia.com passes, then switch to quarantine.
fixes 2 checksThe message is HTML only. A multipart message with a text part passes the content check and reads in text-only clients.
fixes 1 check← each fix comes with what to paste. The points come from re-scoring the fixed message.
All 42 checks
20 pass · 8 warn · 3 fail · 4 n/a · 7 tips← a check that did not run neither passes nor costs points, and neither does a tip. Every row opens onto its evidence.
What the test checks
All 42, by name. Each warning and failure points to the RFC section or the Google and Yahoo requirement it rests on.
Authentication
7 checksSPF · Sender ID · DKIM signature · DKIM alignment · SPF alignment · DMARC result · ARC chain
Infrastructure and reputation
6 checksReverse DNS · HELO name · MX record · Sending hostname resolves · Transport encryption · Blocklists
Spam engines
5 checksSpamAssassin · Combined verdict · Rspamd · Postmark SpamCheck · AI judge
Content
13 checksText and HTML parts · Text to HTML balance · HTML size · Image alt text · Script and iframe · Shortened links · Link availability · Image weight · Subject line · Preheader · Visible link destinations · Link reputation · Attachment scanning
Bulk sender rules
4 checksList-Unsubscribe · One-click unsubscribe · DMARC policy published · TLS for bulk mail
↑ the ones Gmail and Yahoo made mandatory for bulk senders in 2024
Recommendations
7 checksBIMI · MTA-STS · TLS reporting · DNSSEC · DKIM key age and length · Return path length · DMARC report delivery
What happens to the message you send
You get a disposable address. Send it the message you were about to send your list: the real one, with the real links and the real sending setup behind it.
It arrives at a mail server that behaves the way a receiving one does. The server verifies your signatures, reads your DNS, asks two independent spam engines what they make of the content, and looks your sending address up in more than twenty blocklists. Nothing to install, and the address works once and expires in an hour.
Reading the report
Two scores. One reproduces what the classic SpamAssassin-based testers give this exact message, so the number is comparable to what you have seen elsewhere. The other is ours, and it covers ground the classic method never looked at: the bulk sender rules Gmail and Yahoo began enforcing in 2024, link reputation, one-click unsubscribe.
Under that, 42 checks with the evidence behind each one. Every warning and every failure carries the section of the RFC it comes from, quoted, and the page where Google states its own requirement. You can check us.
Then a plan for this message: what to change, in what order, and how many points each change is worth (the points are recomputed by scoring the fixed version, not estimated).
What a spam score actually measures
A spam score is a running total of penalties. Every filter rule your message trips adds points, and the classic SpamAssassin threshold is 5. Below it the message passes, at or above it the message is spam. So the scale runs the wrong way round from the one most people expect. A low score is the good one, and the 10 out of 10 that testers show you is a count of the points you did not lose.
The rules doing the counting are unglamorous. An image with no text around it, a subject line in capitals, a From domain whose DNS does not authorise the server the message came from, a link shortener somebody else burned last year. Each rule is worth a fraction of a point, and the points are what accumulate. A message rarely fails on one rule (that would be easy to find), it fails on eleven of them adding up quietly while you were looking at the design, and no single one of those eleven looks like the culprit when you go back to check.
We give two scores for the same message. One reproduces the classic SpamAssassin number, so it is comparable to whatever other spam score checkers have told you. The other is ours, and it counts what the classic number never looked at, which is the bulk sender rules Gmail and Yahoo began enforcing in 2024, link reputation, one-click unsubscribe.
| Our score, 0 to 100 | What the report says |
|---|---|
| 90 to 100 | Ready to send |
| 70 to 89 | Good, with a few fixes |
| 50 to 69 | Needs work before you hit send |
| Below 50 | This will not reach many inboxes |
How to test email deliverability
Send the message you were about to send anyway. Not a two-line draft written for the test. The real one, with the real links and the real platform behind it.
Then check three layers separately, because they fail separately. Authentication is DNS, and SPF, DKIM and DMARC either line up with the server the message came from or they do not. Reputation is your domain and your IP as the receiving side has been recording them, blocklists included. Content is what the filters make of the words, the links, and how much of one there is against the other.
One test is one snapshot. That snapshot describes one send and nothing further, so run the test again after each change. The fix plan recomputes the points by scoring the corrected version instead of estimating what the correction ought to be worth, which means you can see whether anything moved.
Sender score is a different number
Sender score usually means something narrower. It is a reputation rating for one sending IP address, published by Validity on a 0 to 100 scale, and there a high number is the good one. It describes the address you send from across weeks of history, so complaint rates go into it, spam trap hits go into it, and so does volume that jumped on a Tuesday when nothing else about your sending had changed.
A spam score describes one message. The score and the sender score are independent, and they fail independently. Immaculate content from a burned IP lands in spam, and a spotless IP will not rescue a message that trips eleven content rules. Fixing the wrong one is the ordinary way a week disappears.
This tester answers for the message and for the setup behind it. If your reputation is what is wrong, the report says so and names the blocklist, and that is the part you can act on today.
| Spam score | Sender score | |
|---|---|---|
| What it describes | One message | One sending IP address |
| Who works it out | The filters on the receiving server, and this tester | Validity |
| Scale | Penalty points; SpamAssassin's threshold is 5, and lower is better | 0 to 100, and higher is better |
| What moves it | The content, headers, links and authentication of this message | Complaints, spam trap hits and volume over weeks |
| How to improve it | Change the message or its DNS records, then test again | Change how you send, then wait |
Works where you already send
Start the test from the tool you already use. Each one has a page of its own.
↑ Mailchimp, HubSpot, Zapier and n8n speak the language of the page
For scripts and agents
Run it from a shell, a CI job or an AI agent. No API key needed: 100,000 reports free, then 5 a day per IP.
https://email-spam-tester.com/mcpsource on GitHubFree tools, no email needed
Type a domain and check it from here; each result opens on the tool's own page. The DNS checks also run inside every report and in the API.
GET /api/v1/tools/spf · /dmarc · /dkim · /blocklist · /mx · /bimi · POST /api/v1/tools/header
Questions
Is it free? Yes. The first 100,000 reports are free for everyone, with no cap per person and no account to make: no signup, no card, no API key. After that, 5 tests per IP address per day stay free for as long as the service runs. This is written into the terms, not a launch offer. When the 100,000 mark gets close, I will say so here and in the changelog well before anything changes.
What counts as a good spam score? On the classic SpamAssassin scale it is a number below 5, and lower is better, because the score is a total of penalties. We also give our own score from 0 to 100, and that one reads the way people expect, so higher is better. It weights authentication and infrastructure more heavily than the classic number does.
How long does the test address last? It takes exactly one message and expires an hour after you reserve it. The report link does not expire, so you can come back to it or send it to whoever owns the DNS.
Can other people read my report? Anyone holding the link can, and the report shows the subject, the sender, the bounce address and the full source of the message. Treat the link as private, and do not test somebody else's mail without asking them first.
How is this different from other spam checkers? Two scores instead of one, so the classic SpamAssassin number is there for comparison and ours covers what it never looked at, including the bulk sender rules Gmail and Yahoo began enforcing in 2024. Every warning quotes the section of the RFC it rests on, and the fix plan recomputes its points by scoring the corrected message rather than estimating.
Do I need to install anything? No. You send an email, which is a thing your sending platform already does. There is also an API and an MCP server if you want the same loop from a script or an agent.
Still reading? Your address is still here.
expires in · works once · no signup. The report opens by itself when the email arrives.
