Report spam to the hosts that can stop it.
SpamHost Report helps mail admins turn a full RFC-822 spam message into reviewable abuse complaints for the networks that delivered it and the infrastructure hosting its links.
$ jq -n --rawfile message spam.eml \
'{message: $message}' |
curl -s -H 'Content-Type: application/json' \
--data-binary @- http://localhost:5000
{
"complaints": {
"abuse@example.net": [
{
"type": "link",
"host": "landing.example",
"ips": ["203.0.113.42"],
"whois-abuse-email": "abuse@example.net"
}
]
},
"warnings": []
}Spam complaints often stop at the inbox. The abuse desk needs evidence.
SpamHost Report connects the original message to the infrastructure behind it, then groups the evidence by abuse recipient so a human can review and send useful reports.
Find the delivery path
Parse Received headers and, when configured, respect your trusted mail boundary to reduce false positives.
Resolve hosted links
Extract links from plaintext and HTML bodies, decode known wrappers offline, and optionally follow configured shorteners.
Group by abuse desk
Use network lookup data to consolidate complaints by recipient, with evidence attached to each report item.
A local pipeline for responsible reporting.
Submit locally
Send an RFC-822 message to your own sc server or CLI workflow.
Analyze evidence
Parse headers, find message links, resolve hosts and IP addresses.
Review output
Inspect the grouped JSON, warnings, and optional XARF reports.
Send from your infra
Generate drafts or configure SMTP sending when you explicitly request it.
Self-hosted by default, explicit about network access.
The public website does not accept spam uploads. You run sc where your mail workflow lives, keep message handling under your control, and decide whether shortener expansion or server-side SMTP sending fits your environment.
Read URL handling notesRun sc next to your mail workflow.
Start with Docker or a local Plack server, point the CLI at it, and review the JSON report before sending complaints.