Free self-hosted spam reporting

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.

Review firstNo automatic sending unless you configure and request it.
Abuse contactsFinds contacts using RDAP and ARIN HTTP APIs.
XARF readyCan attach structured reports for receiving abuse desks.
local analysis
$ 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": []
}
The admin problem

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.

How it works

A local pipeline for responsible reporting.

1

Submit locally

Send an RFC-822 message to your own sc server or CLI workflow.

2

Analyze evidence

Parse headers, find message links, resolve hosts and IP addresses.

3

Review output

Inspect the grouped JSON, warnings, and optional XARF reports.

4

Send from your infra

Generate drafts or configure SMTP sending when you explicitly request it.

Built for mail admins

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 notes
No public analyzerspamhost.report is static marketing and documentation only.
Attachments out of scopesc focuses on headers and message body links, not attachment parsing.
Shorteners are opt-inOnly configured short-link hosts are expanded before reporting.
Sending is explicitServer-side delivery requires configuration and a request with send set to true.
Ready to test it

Run 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.