mailreports

Selbstgehostet · Open Source · DMARC & TLS-RPT

Wissen, wer in deinem Namen sendet.

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

Übersicht von mailreports mit der DMARC-Bestehensquote zweier Domains und den Auffälligkeiten

Von Rohdaten zu klaren Antworten.

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.

Im Klartext erklärt

Jeder Berichtseintrag als Satz: welcher Absender, wie viele E-Mails, signiert oder nicht und wie der Empfänger verfahren ist.

Einordnung der Absender

Eigener Server, beauftragte Dienste über den DKIM-Selektor, Weiterleitungen und Unbekannte, mit Reverse-DNS, Land und Netz.

TLS-Berichte

Ob andere Server die eigenen verschlüsselt erreicht haben, für MTA-STS und DANE, mit dem Grund jedes Fehlschlags.

Direkt aus dem Postfach

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.

Benachrichtigungen

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.

Übersicht und Verlauf

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.

DNS-Prüfung

DMARC, SPF mit Lookup-Grenze, DKIM-Schlüssel, MX mit DANE, MTA-STS und TLS-RPT jeder Domain an einer Stelle geprüft.

Absenderseiten und Suche

Der Verlauf jeder sendenden IP und eine Suche über Adressen, Hostnamen, Berichterstatter, Bericht-IDs und DKIM-Selektoren.

Export und Aufbewahrung

Originalberichte herunterladen, Einträge als CSV exportieren und alte Daten nach einer festen Zahl von Tagen automatisch löschen.

Ein DMARC-Bericht, Eintrag für Eintrag erklärt

Jeder Eintrag, erklärt.

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

Wissen, wann verschärft werden kann.

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.

Domainseite mit veröffentlichter Richtlinie, einer Empfehlung für p=reject und dem Verlauf pro Tag
Einstellungsseite mit den Benachrichtigungskanälen, dem Mailserver und der Wochenübersicht

Meldungen dort, wo du hinschaust.

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.

Sichere Anmeldung, eingebaut

Zwei-Faktor und Passkeys

Konten mit den Rollen Administration und Lesezugriff, Codes aus einer Authenticator-App, Wiederherstellungscodes sowie Passkeys oder Sicherheitsschlüssel für eine Anmeldung ohne Passwort.

Single Sign-on

Anmeldung über einen OpenID-Connect-Anbieter wie Authelia, parallel zur normalen Anmeldung, oder die Anmeldung übernimmt der Reverse-Proxy.

Von Haus aus abgesichert

Nicht vertrauenswürdige Berichte sicher gelesen, strenge Content Security Policy, CSRF-Schutz, Anmeldeprotokoll und ein schreibgeschützter Container ohne Root.

Ein Container, eine SQLite-Datei.

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

Kostenlos, und das bleibt so.

Wenn dir mailreports Zeit spart, hält ein Kaffee das Projekt am Laufen.

Kaffee auf Ko-fi spendieren