Im Klartext erklärt
Jeder Berichtseintrag als Satz: welcher Absender, wie viele E-Mails, signiert oder nicht und wie der Empfänger verfahren ist.
Selbstgehostet · 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.
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 E-Mails DMARC nicht bestehen, ein unbekannter Absender auftaucht oder TLS-Verbindungen fehlschlagen, höchstens einmal täglich pro Fund, dazu optional eine Wochenübersicht.
Bestehensquote, Verlauf pro Tag und veröffentlichte Richtlinie je Domain, für eine Woche, einen Monat, ein Quartal oder ein Jahr, auch als JSON- und Prometheus-Kennzahlen.
DMARC, SPF mit Lookup-Grenze, DKIM-Schlüssel, MX mit DANE, MTA-STS und TLS-RPT jeder Domain an einer Stelle geprüft.
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, und Umgebungsvariablen funktionieren weiterhin für die Konfiguration als Code.
Konten mit den Rollen Administration und Lesezugriff, Codes aus einer Authenticator-App, Wiederherstellungscodes sowie Passkeys oder Sicherheitsschlüssel für eine Anmeldung ohne Passwort.
Anmeldung über einen OpenID-Connect-Anbieter wie Authelia, parallel zur normalen Anmeldung, oder die Anmeldung übernimmt der Reverse-Proxy.
Nicht vertrauenswürdige Berichte sicher gelesen, strenge Content Security Policy, CSRF-Schutz, Anmeldeprotokoll und ein schreibgeschützter Container ohne Root.
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.
Zur Installationsanleitung# 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 mailreports Zeit spart, hält ein Kaffee das Projekt am Laufen.