Im Klartext erklärt
Jeder Berichtseintrag als Satz: welcher Absender, wie viele E-Mails, signiert oder nicht und wie der Empfänger verfahren ist.
mailreports
StabilSelbstgehostet · Open Source · DMARC & TLS-RPT
mailreports liest die täglichen DMARC- und TLS-Berichte aus deinem Postfach und erklärt sie im Klartext statt in XML und Fehlercodes: eigener Server, beauftragte Dienste, Weiterleitungen und Absender, die dort nichts zu suchen haben.
Kostenlos unter AGPL-3.0 · Keine Cloud, keine Telemetrie · amd64 und arm64

Die rua=-Adresse des DMARC-Eintrags und den TLS-RPT-Eintrag auf ein Postfach zeigen lassen. mailreports ruft alles ab, was dort ankommt, speichert es und erklärt es.
Jeder Berichtseintrag als Satz: welcher Absender, wie viele E-Mails, signiert oder nicht und wie der Empfänger verfahren ist.
Eigener Server, beauftragte Dienste über den DKIM-Selektor, Weiterleitungen und Unbekannte, mit Reverse-DNS, Land und Netz. Bekannte Absender mit einem Klick auf ihrer Seite eintragen.
Ob andere Server die eigenen verschlüsselt erreicht haben, für MTA-STS und DANE, mit dem Grund jedes Fehlschlags.
IMAP über TLS, Berichte als XML, JSON, gzip oder zip. E-Mails werden verschoben oder markiert, nie gelöscht, oder im Lesemodus gar nicht verändert.
Pushover, ntfy, Webhook oder E-Mail, wenn etwas fehlschlägt, höchstens einmal täglich pro Fund, dazu optional eine Wochenübersicht.
Bestehensquote, Verlauf pro Tag und veröffentlichte Richtlinie je Domain, auch als JSON- und Prometheus-Kennzahlen.
DMARC, SPF mit Lookup-Grenze, DKIM-Schlüssel, MX mit DANE, MTA-STS, TLS-RPT und BIMI, täglich geprüft, mit einer Meldung, wenn sich ein Eintrag ändert oder ein neues Problem auftaucht.
Der Verlauf jeder sendenden IP und eine Suche über Adressen, Hostnamen, Berichterstatter, Bericht-IDs und DKIM-Selektoren.
Originalberichte herunterladen, Einträge als CSV exportieren und alte Daten nach einer festen Zahl von Tagen automatisch löschen.
„Diese 118 E-Mails stammen vom Newsletter-Dienst: korrekt mit example.org signiert.“ Oder: Ein unbekannter Absender hat im Namen der Domain gesendet und wurde abgewiesen. Unter jeder Erklärung: die DKIM-Signaturen, die SPF-Prüfung und beide Absenderadressen.

Sobald die Berichte zeigen, dass alle bekannten Absender bestehen, schlägt mailreports die nächst strengere Richtlinie samt Eintrag vor. Wenn nicht, steht dort, was zuerst zu beheben ist.

Pushover, ntfy, Webhook oder E-Mail direkt in der App einrichten und mit einer Testnachricht prüfen. Tokens und Passwörter werden verschlüsselt gespeichert.

Postfach in .env und den eigenen Mailserver in sources.toml eintragen, dann starten. Die Seite fragt nach dem Einrichtungscode aus dem Log und legt das erste Konto an.
# Dateien holen und starten
mkdir mailreports && cd mailreports
url=https://raw.githubusercontent.com/schnuecks/mailreports/main
curl -O $url/compose.yaml
curl -o .env $url/.env.example
curl -o sources.toml $url/sources.example.toml
mkdir data secrets && sudo chown 10001 data
printf '%s' 'imap-password' > secrets/imap_password.txt
docker compose up -d
Wenn dir eines meiner Projekte Zeit spart, kannst du mir gern einen Kaffee auf Ko-fi ausgeben. Das hält die Drucker am Laufen und bringt die nächste Idee.