Know if an email will land before your users do
Open any email your app sent and switch to Health: its spam score and what moved it, every link and image fetched, and how mail clients and screen readers handle it. Then watch the people who got it react.

A score, and what moved it
Mail is scored by Rspamd, or by simmail's own checks on the same scale. Around 6 mail usually goes to junk; at 15 servers refuse it.
Every rule that moved the score is listed, with a plain fix for the common ones: no plain-text part, a subject in capitals, URL shorteners, mostly images, no display name.

Broken images, caught before a customer sees them
- Links and images Up to 25 fetched: status, final address and time. Links to
localhostare flagged; unsubscribe links are never followed. - Client compatibility Your HTML and CSS checked against caniemail.com data: what breaks, in which clients, and how to fix it.
- Accessibility Checks from WCAG 2.2 that matter in email, plus the message as a screen reader reads it out.

A high score means nobody reads it
Each person's provider has a spam filter. Mail at or above it lands in Junk, and nobody answers mail in Junk. The big webmail providers are strict; you can change the thresholds per universe, rescue an email from Junk, or re-score it.
Insights then shows what each campaign achieved: inbox rate, replies, people who chose not to answer, look-ups, clicks and bounces. Share a read-only report by link.

</> For developers: the API for this
curl -s -G https://c1.simmail.dev/api/inspect \
-H "Authorization: Bearer smk_your_key" \
--data-urlencode "message_id=<[email protected]>"import { Simmail } from "@plexuslabs/simmail";
const mail = new Simmail(); // reads SIMMAIL_URL and SIMMAIL_API_KEY
const report = await mail.health("<[email protected]>");
console.log(report.spam.score, report.broken);"spam": {
"engine": "rspamd",
"score": 4.2,
"junk": 6,
"reject": 15,
"action": "no action",
"rules": [
{ "name": "MIME_HTML_ONLY", "score": 1, "description": "Message has only an HTML part, no plain text",
"fix": "Send a plain-text alternative alongside the HTML." }
]
}curl -s "https://c1.simmail.dev/api/insights?days=30" \
-H "Authorization: Bearer smk_your_key"{
"total": { "subject": "All campaigns", "sent": 40, "recipients": 40, "junked": 3, "bounced": 1, "seen": 36,
"replied": 22, "declined": 9, "clicked": 14, "looked_up": 5, "reply_rate": 0.61 },
"moods": { "warm": 9, "neutral": 18, "wary": 4, "annoyed": 2, "done": 1 },
"promises": { "made": 7, "slipping": 2, "awaited": 3, "nudges": 1 },
"inbound": 12
}Questions
Is the spam score the same as Gmail’s?
No provider publishes its filter. simmail scores with Rspamd, the engine many real mail servers run, or with its own checks on the same scale. Each finding comes with what it means and, for the common ones, how to fix it.
Does simmail grade SPF, DKIM and DMARC?
Not in the simulation. Domains in a universe are mostly made up, so checks that look the sender’s domain up in DNS are never counted toward the score. To check a real domain, use our free SPF, DKIM and DMARC checkers.
Which mail gets a report?
Every message your app (or you) sends, over SMTP or with POST /api/send. Mail written by simulated people is not inspected.
How fast is the report?
The spam score is ready as soon as the message is accepted. The link and image check runs in the background for up to a minute; links_done says when it has finished.
What is included in each plan?
The spam score, its rules and the link check are in every plan. The compatibility and accessibility details, and people reacting to them, need the full inspection feature. Junk folders need junk consequences, and insights need the insights feature. See Plans and limits.
Put real behaviour between your app and its inbox
Start free with 25 AI actions a month, no card needed. Upgrade when you need more.