Sidequests

Privacy Mail Log E-Mail-Protokoll für WordPress

Ein E-Mail-Protokoll für WordPress, das Datenschutz ernst nimmt. Es zeichnet jede Mail auf und behandelt den Bestand von Anfang an als personenbezogene Daten, die irgendwann wieder weg müssen.

WordPress verschickt ständig E-Mails: Formulareingaben, Bestellbestätigungen, Passwort-Links, Hinweise an die Redaktion. Ob sie ankommen, sieht im Backend niemand. Ein Mail-Log schließt diese Lücke, und Plugins dafür gibt es etliche. Fast alle speichern jede Mail vollständig und unbegrenzt, mit Empfänger, Betreff und Inhalt. So wächst in der Datenbank eine Sammlung personenbezogener Daten, an die nach der Einrichtung keiner mehr denkt. Deshalb habe ich Privacy Mail Log gebaut. Es zeichnet jede Mail auf und behandelt den Bestand von Anfang an als das, was er ist: personenbezogene Daten, die irgendwann wieder weg müssen.

Was protokolliert wird

Das Plugin zeichnet jede E-Mail auf, die über wp_mail() läuft: Name und Adresse der Empfänger, Betreff, Inhalt und die Dateinamen der Anhänge. Die Anhänge selbst werden nicht gespeichert. Zu jedem Eintrag gehört der Status: erfolgreich versendet, fehlgeschlagen mit der Fehlermeldung des Mailers oder „Pending", wenn ein anderes Plugin die Zustellung übernommen und nichts zurückgemeldet hat. SMTP-Plugins, die auf wp_mail() aufsetzen, werden mit erfasst. Die Übersicht bietet Suche, Statusfilter und Massenlöschung. HTML-Mails zeigt die Detailansicht in einer Sandbox, die Skripte und Formulare blockiert. Eine Testmail aus dem Backend zeigt, dass das Protokoll läuft.

WordPress-Backend, Seite Mail Log: Tabelle mit acht protokollierten Mails, Spalten Betreff, Empfänger, Status und Datum, darüber Suche, Massenaktionen und Statusfilter
Die Übersicht mit Suche, Statusfilter und Massenaktionen. Ältere Einträge sind bereits anonymisiert.
Detailansicht eines Protokolleintrags: Datum, Status Sent, Absender, Empfänger, Betreff und Content-Type, darunter die HTML-Mail einer Versandbestätigung
Die Detailansicht einer protokollierten Mail. HTML-Inhalte laufen in einer Sandbox, die Skripte und Formulare blockiert.
Einstellungsseite Privacy Mail Log Settings: Logging aktivieren, Anonymisierung je Feld für Empfängername, Adresse, Betreff und Inhalt, Ersetzungsart der E-Mail-Adresse und die Frist Anonymize after 30 days
Die Einstellungen: Anonymisierung pro Feld, Ersetzungsart der Adresse und die Fristen.
Seite Send Test Email mit Empfängerfeld, Formatauswahl Plain text oder HTML und dem Button Send Test Email
Die Testmail aus dem Backend zeigt, dass das Protokoll läuft.

Anonymisieren pro Feld

Der Kern des Plugins sind die Datenschutz-Einstellungen. Für Empfängername, Adresse, Betreff und Inhalt lässt sich getrennt festlegen, ob das Feld nie, nach einer Frist oder sofort anonymisiert wird. „Sofort" greift, bevor der Eintrag geschrieben wird. Der Wert erreicht die Datenbank also gar nicht erst. Wer den Inhalt auf „Sofort" stellt, betreibt ein reines Metadaten-Protokoll: Man sieht, wann welche Mail an wen rausging und ob sie ankam, der Text bleibt außen vor.

Für die E-Mail-Adresse gibt es drei Ersetzungsarten: ein Platzhalter, ein stabiler Hash oder nur die Domain. Der Hash macht eine Adresse unkenntlich, bleibt aber für dieselbe Adresse immer gleich. So lässt sich auch im anonymisierten Protokoll noch erkennen, dass fünf Mails an denselben Empfänger gingen, ohne zu wissen, an wen.

Zwei Fristen

Die Aufbewahrung läuft in zwei Stufen über WP-Cron: Nach der ersten Frist werden die Einträge anonymisiert, nach der zweiten gelöscht. Voreingestellt sind 30 und 90 Tage, beides lässt sich anpassen. Das Protokoll hat damit ein Ablaufdatum und räumt hinter sich selbst auf.

Auskunft und Löschung

Privacy Mail Log hängt sich in die Datenschutzwerkzeuge von WordPress ein. Bei einem Auskunftsersuchen landen die passenden Protokolleinträge im Export. Bei einem Löschersuchen werden alle Einträge an die betreffende Adresse unwiderruflich anonymisiert: Name, Adresse, Betreff und Inhalt werden überschrieben, der Eintrag selbst bleibt. Die Versandstatistik stimmt weiterhin, personenbezogene Daten sind keine mehr da. Endgültig ist das in jeder Variante: Die Originalwerte werden überschrieben, ein Zurück gibt es nicht.

Was das Plugin nicht verspricht

Privacy Mail Log ist ein Werkzeug, keine Konformitätsgarantie. Ob der Einsatz zur DSGVO passt, hängt von Konfiguration, Fristen und den Prozessen des Betreibers ab. Das Plugin liefert die Mittel dafür. Es kommt ohne externe Abhängigkeiten aus, stellt keine Anfragen nach außen und trackt nichts. Für Entwickler gibt es Hooks: eine Action nach jedem protokollierten Eintrag und Filter für die Einstellungen, die benötigte Berechtigung und die Batch-Größe des Cron-Laufs.

Voraussetzungen sind WordPress 6.7 und PHP 7.4, Lizenz GPL. Installation über das Plugin-Verzeichnis oder per WP-CLI:

Terminal
wp plugin install neuedaten-privacy-mail-log --activate