# Mail Log

Protokolliert jede E-Mail, die Ihre Joomla-Website versendet — mit Auslöser, Empfänger und Zustellstatus · Version 1.0.4 · Stand 12.08.2026

# Mail Log im Überblick

Mail Log protokolliert jede E-Mail, die Ihre Joomla-Website über den Joomla-Mailer versendet. Zu jeder Nachricht sehen Sie, *wer* sie ausgelöst hat, *an wen* sie ging, *ob* die Zustellung gelang und — je nach Einstellung — den vollständigen Inhalt. Fehlgeschlagene Zustellungen werden ebenso festgehalten wie erfolgreiche. So haben Sie einen lückenlosen Nachweis darüber, was Ihre Website tatsächlich verschickt.

Mail Log ist eine reine Administrator-Erweiterung für Joomla 6 und erzeugt keinerlei Ausgabe im Frontend.

<figure id="bkmrk-das-dashboard-fasst-"> ![Das Dashboard von Mail Log mit Kennzahlen und Aktivitätsdiagramm](https://docs.graup-it.de/uploads/images/gallery/2026-07/p6Odoku-01-dashboard.png) <figcaption>Das Dashboard fasst das Mail-Aufkommen zusammen: Gesamtzahl, heutige und wöchentliche Werte, Fehlerraten, ein Aktivitätsdiagramm sowie die letzten Mails und Fehler.</figcaption></figure>## Wofür Sie Mail Log einsetzen

- **Fehlersuche bei der Zustellung.** Sie sehen sofort, welche Mails fehlgeschlagen sind, mit der genauen Fehlermeldung des Mailservers.
- **Nachweis und Audit.** Wurde die Bestellbestätigung, die Registrierungsmail, die Benachrichtigung wirklich versendet? Der Log beantwortet das mit Zeitstempel, Empfänger und Inhalt.
- **Erneutes Senden.** Eine verlorene Mail lässt sich mit einem Klick erneut zustellen — an die ursprünglichen oder an eine andere Adresse.
- **Überblick über das Aufkommen.** Das Dashboard zeigt Volumen, Spitzenzeiten und Fehlerraten auf einen Blick.

## Datenschutz ist eingebaut, nicht angeflanscht

Ein Mail-Log speichert naturgemäß potenziell sensible Inhalte. Mail Log geht deshalb ab Werk sparsam mit den Daten um:

<div class="callout info" id="bkmrk-in-der-voreinstellun"> **In der Voreinstellung wird nur ein kurzer Auszug des Nachrichtentexts gespeichert, kein vollständiger Body und keine rohe MIME-Nachricht.**</div>- **Sensible Mails werden erkannt.** Nachrichten mit Betreffzeilen wie „Passwort zurücksetzen", „Token" oder „2FA" werden automatisch als sensibel eingestuft und standardmäßig nur mit Metadaten gespeichert — der Reset-Link landet nicht im Log.
- **Verschlüsselung ohne Schlüssel in der Datenbank.** Wählen Sie die verschlüsselte Speicherung, wird der Schlüssel aus dem geheimen Joomla-Schlüssel abgeleitet und liegt nicht in der Datenbank. Ein Datenbank-Diebstahl allein gibt die Inhalte nicht preis.
- **Anhänge außerhalb des Web-Roots.** Erfasste Anhänge werden in ein geschütztes Verzeichnis kopiert, das nicht direkt über das Web erreichbar ist.
- **Getrennte Rechte fürs Lesen.** Wer die Liste sehen darf, darf nicht automatisch auch die Nachrichtentexte lesen — das ist ein eigenes Recht.
- **Strikt lokal.** Es werden keine externen Dienste kontaktiert. Keine Daten verlassen Ihre Website.

## Woraus Mail Log besteht

Das Paket installiert drei zusammengehörige Erweiterungen:

- **Die Komponente** `com_maillog` — die Oberfläche im Backend mit Dashboard, Liste und Detailansicht.
- **Das System-Plugin** `plg_system_maillog` — es fängt den Mailversand ab und schreibt die Log-Einträge. Ohne dieses Plugin wird nichts protokolliert.
- **Das Task-Plugin** `plg_task_maillog` — die Wartungsaufgaben für den Joomla-Aufgabenplaner (Aufräumen, Statistik, Migration).

## Wie Sie weiterlesen

Wenn Sie neu einsteigen, folgen Sie am besten dieser Reihenfolge:

1. [Voraussetzungen und Installation](https://docs.graup-it.de/books/mail-log/page/voraussetzungen-und-installation)
2. [Download-Schlüssel und Updates](https://docs.graup-it.de/books/mail-log/page/download-schlussel-und-updates)
3. [Schnellstart: das Dashboard](https://docs.graup-it.de/books/mail-log/page/schnellstart-das-dashboard)
4. [Die Log-Liste](https://docs.graup-it.de/books/mail-log/page/die-log-liste)
5. [Einen Eintrag ansehen](https://docs.graup-it.de/books/mail-log/page/einen-eintrag-ansehen)
6. [Body-Speicherung, Verschlüsselung und sensible Inhalte](https://docs.graup-it.de/books/mail-log/page/body-speicherung-verschlusselung-und-sensible-inhalte)

<small>Gilt für Version 1.0.4.</small>

# Voraussetzungen und Installation

Mail Log wird als ein Paket installiert, das die Komponente und die beiden Plugins zusammen einspielt. Diese Seite nennt die Voraussetzungen und beschreibt, was nach der Installation aktiv ist.

## Voraussetzungen

<table class="table" id="bkmrk-joomla6.0-oder-neuer"> <tbody> <tr><td>Joomla</td><td>6.0 oder neuer</td></tr> <tr><td>PHP</td><td>8.3 oder neuer</td></tr> <tr><td>Datenbank</td><td>MySQL 8.0.13+ oder MariaDB 10.4+</td></tr> <tr><td>PHP-Erweiterung</td><td>`sodium` (für die optionale Verschlüsselung; in PHP 8.3 standardmäßig vorhanden)</td></tr> </tbody></table>

## Installation

1. Laden Sie das Paket `pkg_maillog-<version>.zip` herunter.
2. Öffnen Sie im Backend *System → Installieren → Erweiterungen* und ziehen Sie die ZIP-Datei in den Bereich *Paketdatei hochladen*.
3. Nach dem Hochladen ist Mail Log installiert. Sie finden es im Menü unter *Komponenten → Mail Log*.

<div class="callout info" id="bkmrk-es-ist-eine-einzige-">Es ist eine einzige ZIP-Datei zu installieren — das Paket enthält die Komponente und beide Plugins. Installieren Sie nicht die einzelnen Bestandteile separat.

</div><figure id="bkmrk-nach-der-installatio"> ![Das Panel nach der Installation von Mail Log mit Version, Status und den Karten Erste Schritte, Updates aktivieren und Hilfe](https://docs.graup-it.de/uploads/images/gallery/2026-07/doku-11-installationspanel.png) <figcaption>Nach der Installation begrüßt Sie dieses Panel. Es nennt die installierte Version und führt zu den drei Dingen, die jetzt anstehen: die erste Testmail, der Download-Schlüssel für Aktualisierungen und das Handbuch. Nach einem Update steht an der Stelle von „Erste Schritte“ das Änderungsprotokoll.</figcaption></figure>## Was nach der Installation aktiv ist

Damit Mail Log sofort protokolliert, aktiviert die Installation das **System-Plugin**automatisch. Ab diesem Moment wird jede versendete Mail erfasst — Sie müssen nichts weiter einschalten.

Das **Task-Plugin** wird ebenfalls aktiviert, führt aber von allein nichts aus. Seine Wartungsaufgaben laufen erst, wenn Sie sie im Joomla-Aufgabenplaner einrichten (siehe das Kapitel [Wartung: geplante Aufgaben](https://docs.graup-it.de/books/mail-log/page/wartung-geplante-aufgaben)).

## Erste Kontrolle

Um zu prüfen, dass alles läuft, senden Sie eine Test-E-Mail über *System → Konfiguration → Server → Test-E-Mail senden*. Öffnen Sie anschließend *Komponenten → Mail Log*: Die Testnachricht sollte als jüngster Eintrag in der Liste erscheinen.

## Was in der Datenbank angelegt wird

Die Installation legt vier Tabellen an (Einträge, Empfänger, Tagesstatistik und eine kleine Tabelle zur Drosselung der Benachrichtigungen). Bei einer Deinstallation werden diese Tabellen und ihre Daten wieder entfernt. Erfasste Anhang-Dateien im geschützten Verzeichnis bleiben dagegen erhalten, damit ein versehentliches Deinstallieren keine Beweismittel vernichtet — löschen Sie diesen Ordner bei Bedarf von Hand.

<small>Gilt für Version 1.0.4.</small>

# Download-Schlüssel und Updates

Mail Log erhält Updates über den offiziellen Joomla-Update-Mechanismus. Damit Ihre Website die Aktualisierungen abrufen darf, tragen Sie einmalig Ihren persönlichen Download-Schlüssel ein.

## Den Download-Schlüssel eintragen

1. Erzeugen Sie Ihren Download-Schlüssel in Ihrem Kundenkonto auf [graup-it.de](https://www.graup-it.de) (Menüpunkt *Download-IDs*). Ein Schlüssel gilt pro Website und deckt alle darüber bezogenen Erweiterungen ab.
2. Öffnen Sie im Backend *System → Aktualisieren → Update-Quellen*.
3. Öffnen Sie den Eintrag *Mail Log Update Site* und tragen Sie den Schlüssel in das Feld *Download-Schlüssel* ein.
4. Speichern.

<figure id="bkmrk-in-den-update-quelle"> ![Die Update-Quellen mit dem Feld für den Download-Schlüssel](https://docs.graup-it.de/uploads/images/gallery/2026-07/sEydoku-08-download-key.png) <figcaption>In den Update-Quellen tragen Sie den Download-Schlüssel bei der Mail-Log-Update-Site ein.</figcaption></figure><div class="callout warning" id="bkmrk-achten-sie-darauf%2C-d">Achten Sie darauf, den Schlüssel **ohne führende oder abschließende Leerzeichen** einzufügen. Ein mitkopiertes Leerzeichen führt beim Update zu einer Fehlermeldung („URL rejected" bzw. „Paketdownload fehlgeschlagen").

</div>## Updates einspielen

1. Öffnen Sie *System → Aktualisieren → Erweiterungen aktualisieren*.
2. Ist eine neue Version verfügbar, erscheint Mail Log in der Liste. Wählen Sie es aus und klicken Sie auf *Aktualisieren*.
3. Joomla lädt das Paket über Ihren Download-Schlüssel, prüft die Prüfsumme und spielt die neue Version ein.

Findet Joomla kein Update, obwohl eine neue Version vorliegt, klicken Sie zunächst auf *Auf Updates prüfen*, um den Zwischenspeicher zu aktualisieren.

## Manueller Weg

Sie können jede Version auch manuell installieren: das ZIP herunterladen und wie bei der Erstinstallation über *System → Installieren → Erweiterungen* einspielen. Ein Update über das Paket überschreibt die vorhandene Installation und erhält Ihre Einstellungen und Log-Daten.

<small>Gilt für Version 1.0.4.</small>

# Schnellstart: das Dashboard

Nach der Installation läuft Mail Log sofort. Diese Seite zeigt, wie Sie den ersten Eintrag erzeugen und das Dashboard richtig lesen.

## Den ersten Eintrag erzeugen

Senden Sie eine beliebige E-Mail über Ihre Website — am einfachsten die eingebaute Test-E-Mail unter *System → Konfiguration → Server → Test-E-Mail senden*. Öffnen Sie danach *Komponenten → Mail Log*. Die Nachricht erscheint als jüngster Eintrag.

## Das Dashboard lesen

<figure id="bkmrk-das-dashboard-ist-di"> ![Das Dashboard von Mail Log mit vier Kennzahlen, Diagramm und Listen](https://docs.graup-it.de/uploads/images/gallery/2026-07/p6Odoku-01-dashboard.png) <figcaption>Das Dashboard ist die Startseite von Mail Log.</figcaption></figure>Oben stehen vier Kennzahlen:

<table class="table" id="bkmrk-kachelbedeutung-e-ma"> <thead> <tr><th scope="col">Kachel</th><th scope="col">Bedeutung</th></tr> </thead> <tbody> <tr><td>E-Mails gesamt</td><td>Alle protokollierten Mails, aufgeschlüsselt in gesendet und fehlgeschlagen.</td></tr> <tr><td>Heute</td><td>Mails des laufenden Tages mit Fehlerrate.</td></tr> <tr><td>Letzte 7 Tage</td><td>Wochenwert mit Fehlerrate.</td></tr> <tr><td>Letzte 30 Tage</td><td>Monatswert mit Fehlerrate.</td></tr> </tbody></table>

Darunter folgen:

- **Das Aktivitätsdiagramm** — gesendete und fehlgeschlagene Mails pro Tag, gestapelt. Über dem Diagramm steht die Spitzenstunde des Zeitraums.
- **Letzte E-Mails** — die jüngsten Nachrichten mit Status, Betreff und Absender. Ein Klick öffnet die Detailansicht.
- **Letzte Fehler** — die jüngsten fehlgeschlagenen Zustellungen, damit Sie Probleme sofort sehen.

<div class="callout info" id="bkmrk-rendert-das-diagramm">Rendert das Diagramm nicht (etwa bei abgeschaltetem JavaScript), zeigt Mail Log dieselben Zahlen automatisch als Tabelle an. Es gehen keine Informationen verloren.

</div>## Von hier aus weiter

Über die Schaltfläche *Logs öffnen* gelangen Sie zur vollständigen Liste. Dort filtern und durchsuchen Sie alle Einträge — das beschreibt das Kapitel [Die Log-Liste](https://docs.graup-it.de/books/mail-log/page/die-log-liste).

<small>Gilt für Version 1.0.4.</small>

# Die Log-Liste

Die Log-Liste zeigt alle protokollierten Mails. Sie erreichen sie über den Menüpunkt *Mail Log* in der Seitenleiste oder über *Logs öffnen* im Dashboard.

<figure id="bkmrk-die-log-liste-mit-ge"> ![Die Log-Liste mit Suchleiste, Filtern und Ergebnistabelle](https://docs.graup-it.de/uploads/images/gallery/2026-07/nb5doku-02-liste.png) <figcaption>Die Log-Liste mit geöffneten Filter-Optionen.</figcaption></figure>## Die Spalten

<table class="table" id="bkmrk-spalteinhalt-statusg"> <thead> <tr><th scope="col">Spalte</th><th scope="col">Inhalt</th></tr> </thead> <tbody> <tr><td>Status</td><td>*Gesendet*, *Fehlgeschlagen* oder *Übersprungen*. Bei Fehlern zeigt ein Tooltip die Fehlermeldung.</td></tr> <tr><td>Zeit</td><td>Zeitpunkt des Versands.</td></tr> <tr><td>Absender</td><td>Die Absenderadresse.</td></tr> <tr><td>Empfänger</td><td>Der erste Empfänger; weitere werden als „+n" angezeigt.</td></tr> <tr><td>Betreff</td><td>Die Betreffzeile. Symbole weisen auf Anhänge und auf erneut gesendete Mails hin.</td></tr> <tr><td>Quelle</td><td>Die Erweiterung, die den Versand ausgelöst hat, sofern erkannt (z. B. `com_users`).</td></tr> <tr><td>Aktionen</td><td>Eintrag ansehen und — mit entsprechendem Recht — erneut senden.</td></tr> </tbody></table>

Ein gelbes **Demo**-Kennzeichen markiert Testeinträge, die Sie selbst erzeugt haben (siehe unten).

## Suchen und filtern

Über *Filter-Optionen* öffnen Sie die Filterleiste:

<table class="table" id="bkmrk-suchedurchsucht-betr"> <tbody> <tr><td>**Suche**</td><td>Durchsucht Betreff, Absender, Empfänger, Quelle und die Referenz-Kennung.</td></tr> <tr><td>**Status**</td><td>Nur gesendete, nur fehlgeschlagene oder alle.</td></tr> <tr><td>**Zeitraum**</td><td>Schnellauswahl (heute, 7/30/90 Tage) oder ein eigenes Von-/Bis-Datum.</td></tr> <tr><td>**Absender enthält** / **Empfänger enthält**</td><td>Freitext-Teiltreffer auf die Adressen.</td></tr> <tr><td>**Quell-Erweiterung**</td><td>Auf eine bestimmte auslösende Erweiterung einschränken.</td></tr> <tr><td>**Kontext**</td><td>Frontend, Backend, CLI oder API — je nachdem, wo die Mail entstand.</td></tr> </tbody></table>

Die Spaltenköpfe *Status*, *Zeit*, *Absender*, *Betreff* und *Quelle* sind sortierbar. Die Seitengröße stellen Sie im Fuß der Liste ein.

## Mehrere Einträge auf einmal

Über die Auswahlkästchen markieren Sie mehrere Einträge und wenden dann eine Aktion der Werkzeugleiste an — *Erneut senden* oder *Löschen* (jeweils passendes Recht vorausgesetzt). Beide Aktionen fragen vorher nach.

## Exportieren

Die Schaltfläche *CSV exportieren* gibt die aktuell gefilterte Liste als CSV-Datei aus — vollständig, nicht nur die angezeigte Seite. Der Body-Inhalt ist im Export bewusst nicht enthalten; Details siehe [Rechte, Export und Datenschutz](https://docs.graup-it.de/books/mail-log/page/rechte-export-und-datenschutz).

## Demo-Daten zum Ausprobieren

Mit dem Recht *Demo-Daten verwalten* erzeugen Sie über die Werkzeugleiste realistisch aussehende Testeinträge, um Liste, Dashboard und Detailansicht auszuprobieren. Alle Demo-Einträge tragen das Demo-Kennzeichen und lassen sich mit einem Klick wieder entfernen.

<figure id="bkmrk-der-demo-dialog%3A-anz"> ![Der Dialog zum Erzeugen von Demo-Daten](https://docs.graup-it.de/uploads/images/gallery/2026-07/pTPdoku-10-demo.png) <figcaption>Der Demo-Dialog: Anzahl, Zeitraum und Fehlerquote der Testeinträge festlegen.</figcaption></figure><small>Gilt für Version 1.0.4.</small>

# Einen Eintrag ansehen

Ein Klick auf einen Eintrag — auf die Zeit, den Betreff oder die Ansehen-Schaltfläche — öffnet die Detailansicht mit allen erfassten Angaben zu dieser Mail.

<figure id="bkmrk-links-die-metadaten%2C"> ![Die Detailansicht eines Log-Eintrags mit Metadaten links und Inhalts-Reitern rechts](https://docs.graup-it.de/uploads/images/gallery/2026-07/fhhdoku-03-detail.png) <figcaption>Links die Metadaten, rechts der Inhalt in mehreren Reitern.</figcaption></figure>## Die Metadaten

Die linke Spalte fasst zusammen, was über die Mail bekannt ist:

- Status, Zeitpunkt und eine eindeutige **Referenz**-Kennung
- Absender sowie **An**, **CC**, **BCC** und **Antwort an**
- **Quelle** (auslösende Erweiterung) und **Kontext** (Frontend/Backend/CLI/API)
- die **IP-Adresse** und der angemeldete **Benutzer**, sofern vorhanden
- bei Fehlern die vollständige **Fehlermeldung** des Mailservers
- ein Hinweis, falls der Text **gekürzt** gespeichert wurde

## Die Inhalts-Reiter

<table class="table" id="bkmrk-reiterinhalt-htmlder"> <thead> <tr><th scope="col">Reiter</th><th scope="col">Inhalt</th></tr> </thead> <tbody> <tr><td>HTML</td><td>Der HTML-Text, in einer abgeschotteten Vorschau dargestellt (dazu unten mehr).</td></tr> <tr><td>Text</td><td>Die reine Textfassung der Nachricht.</td></tr> <tr><td>Header</td><td>Die benutzerdefinierten Kopfzeilen der Nachricht.</td></tr> <tr><td>Rohes MIME</td><td>Die exakte RFC822-Nachricht, sofern deren Speicherung aktiviert ist.</td></tr> <tr><td>Anhänge (n)</td><td>Die erfassten Anhänge mit Name, Typ und Größe zum Herunterladen.</td></tr> </tbody></table>

<div class="callout info" id="bkmrk-der-html-text-wird-i">Der HTML-Text wird in einem abgeschotteten Rahmen (`sandbox`) angezeigt: Skripte im Mail-HTML werden nicht ausgeführt, und der Inhalt kann das Backend nicht beeinflussen. So können Sie auch fremde Nachrichten gefahrlos ansehen.

</div>## Wenn kein Text da ist

Je nach Einstellung ist der Body bewusst nicht oder nur teilweise gespeichert. In diesen Fällen erklärt ein Hinweis den Grund:

- *„Der Body ist verschlüsselt gespeichert und wurde für die Anzeige entschlüsselt."* — Sie sehen den Klartext, in der Datenbank liegt er verschlüsselt.
- *„Für diesen Eintrag werden nur Metadaten gespeichert."* — typisch für sensible Mails wie Passwort-Resets.
- *„Für diesen Eintrag werden nur die ersten 4 KB des Body gespeichert."* — die Voreinstellung speichert einen kurzen Auszug; die angezeigte Größe entspricht der konfigurierten Auszugsgröße.

Das Lesen der Bodies setzt das Recht *Mail-Inhalt ansehen* voraus. Fehlt es, sehen Sie die Metadaten, aber nicht den Text.

## Herunterladen

Mit dem Recht *Anhänge und .eml herunterladen* laden Sie über die Werkzeugleiste die rohe Nachricht als **.eml**-Datei herunter (zum Öffnen in einem Mailprogramm) sowie einzelne Anhänge aus dem gleichnamigen Reiter.

## Versand-Kette

Wurde eine Mail erneut gesendet, verknüpft Mail Log den neuen Eintrag mit dem ursprünglichen. Die Detailansicht zeigt diese Kette, sodass Sie nachvollziehen können, welcher Versand aus welchem hervorging.

<small>Gilt für Version 1.0.4.</small>

# Eine Mail erneut senden

Mail Log kann eine protokollierte Nachricht erneut zustellen. Das ist nützlich, wenn eine Mail verloren ging, im Spam landete oder an die falsche Adresse ging. Der erneute Versand nutzt den gespeicherten Inhalt und läuft über den normalen Joomla-Mailer — es entsteht ein neuer Log-Eintrag.

## So senden Sie erneut

- **Aus der Liste:** die Schaltfläche *Erneut senden* in der Aktionsspalte, oder mehrere Einträge markieren und die Werkzeugleisten-Aktion *Erneut senden* verwenden.
- **Aus der Detailansicht:** der Abschnitt *Erneut senden* mit der Schaltfläche *Diese E-Mail erneut senden*.

<figure id="bkmrk-in-der-detailansicht"> ![Der Bereich Erneut senden in der Detailansicht mit Feld für eine alternative Adresse](https://docs.graup-it.de/uploads/images/gallery/2026-07/fhhdoku-03-detail.png) <figcaption>In der Detailansicht können Sie optional eine abweichende Empfängeradresse angeben.</figcaption></figure>## An eine andere Adresse

In der Detailansicht können Sie eine **alternative Empfänger-Adresse** eintragen. Ist sie gesetzt, geht die Mail nur an diese eine Adresse; die ursprünglichen Empfänger werden ignoriert. Bleibt das Feld leer, gehen Betreff, Text und Anhänge an die ursprünglichen Empfänger.

<div class="callout info" id="bkmrk-der-erneute-versand-">Der erneute Versand erfordert das Recht *Mails erneut senden*. Jeder erneute Versand erzeugt einen eigenen Log-Eintrag, der auf den ursprünglichen verweist.

</div>## Wenn der erneute Versand nicht möglich ist

Damit nichts Unerwartetes passiert, verweigert Mail Log den erneuten Versand in einigen Fällen mit einer klaren Meldung:

- **Nur Metadaten gespeichert.** Wurde die Mail als sensibel eingestuft (z. B. ein Passwort-Reset) und nur mit Metadaten abgelegt, ist ihr Text nicht vorhanden und kann nicht erneut gesendet werden.
- **Text nicht rekonstruierbar.** Ist der Body verschlüsselt und der Schlüssel nicht verfügbar oder wurde er nur verkürzt gespeichert, meldet Mail Log dies statt eine leere Mail zu verschicken.

## Schutz vor Missbrauch

Zwei Grenzen verhindern versehentliche Massenversände und Missbrauch:

- Zwischen zwei erneuten Versänden derselben Mail liegt eine **Wartezeit von 30 Sekunden**.
- Eine einzelne Mail lässt sich **höchstens 20-mal** erneut senden.

Beide Werte sind bewusst fest, damit ein kompromittiertes Konto Mail Log nicht als Spam-Schleuder missbrauchen kann.

<small>Gilt für Version 1.0.4.</small>

# Body-Speicherung, Verschlüsselung und sensible Inhalte

Wie viel vom Nachrichtentext Mail Log speichert, entscheiden Sie selbst. Diese Seite erklärt die Speichermodi, die Verschlüsselung und die Sonderbehandlung sensibler Mails. Alle Einstellungen finden Sie in den *Optionen* unter den Reitern *Body-Speicherung*, *Rohes MIME* und *Sensible Inhalte*.

<div class="callout info" id="bkmrk-%C3%84nderungen-am-speich">Änderungen am Speichermodus wirken nur auf **neue** Einträge. Bereits gespeicherte Mails bleiben, wie sie sind.

</div>## Die Speichermodi für den Body

<figure id="bkmrk-der-reiter-body-spei"> ![Der Optionen-Reiter Body-Speicherung](https://docs.graup-it.de/uploads/images/gallery/2026-07/b7cdoku-04-optionen-body.png) <figcaption>Der Reiter *Body-Speicherung* steuert, wie viel vom Text abgelegt wird.</figcaption></figure><table class="table" id="bkmrk-moduswas-gespeichert"> <thead> <tr><th scope="col">Modus</th><th scope="col">Was gespeichert wird</th></tr> </thead> <tbody> <tr><td>**Metadaten + erste N KB**  
*(Voreinstellung)*</td><td>Nur die ersten Kilobytes des Texts. Reicht für einen Eindruck, ohne lange Nachrichten vollständig abzulegen. Die Größe stellen Sie mit *Zu behaltende Body-Größe (KB)* ein (Standard 4 KB).</td></tr> <tr><td>**Vollständiger Body**</td><td>Der komplette Text im Klartext.</td></tr> <tr><td>**Vollständig, verschlüsselt**</td><td>Der komplette Text, verschlüsselt in der Datenbank (siehe unten).</td></tr> <tr><td>**Vollständig, automatisches Löschen nach N Tagen**</td><td>Der komplette Text, aber der Wartungs-Task entfernt ihn nach der eingestellten Frist wieder und behält nur die Metadaten.</td></tr> <tr><td>**Nur Metadaten**</td><td>Gar kein Text — nur Absender, Empfänger, Betreff, Status und Zeit.</td></tr> </tbody></table>

Zusätzlich begrenzt *Maximale Body-Größe (KB)* als globale Schutzobergrenze jeden Text; größere Bodies werden gekürzt und in der Detailansicht als gekürzt markiert.

## Rohes MIME

Unabhängig vom Body-Modus können Sie im Reiter *Rohes MIME* die exakte, wie versendet aufgebaute RFC822-Nachricht speichern. Das ermöglicht saubere **.eml**-Downloads für ein Audit. Weil das rohe MIME den vollständigen Klartext enthält, ist diese Option **ab Werk ausgeschaltet**. Sie lässt sich ebenfalls verschlüsseln.

## Verschlüsselung

<figure id="bkmrk-der-reiter-sensible-"> ![Der Optionen-Reiter Sensible Inhalte](https://docs.graup-it.de/uploads/images/gallery/2026-07/nrJdoku-05-sensible-inhalte.png) <figcaption>Der Reiter *Sensible Inhalte* mit den Betreff- und Masking-Mustern.</figcaption></figure>Verschlüsselte Bodies und MIME-Nachrichten schützt Mail Log mit einem modernen Verfahren (AES-256-GCM bzw. XChaCha20-Poly1305). Entscheidend ist die Herkunft des Schlüssels:

<div class="callout success" id="bkmrk-der-schl%C3%BCssel-wird-a">Der Schlüssel wird aus dem **geheimen Joomla-Schlüssel** (in Ihrer `configuration.php`) abgeleitet und liegt **nicht in der Datenbank**. Ein Angreifer, der nur die Datenbank erbeutet, kann die Inhalte deshalb nicht entschlüsseln.

</div><div class="callout warning" id="bkmrk-kehrseite%3A-%C3%84ndern-si">Kehrseite: Ändern Sie den geheimen Joomla-Schlüssel, lassen sich zuvor verschlüsselte Einträge nicht mehr lesen. Der Schlüssel gehört zum ohnehin schützenswerten Kern Ihrer Joomla-Installation — behandeln Sie ihn entsprechend.

</div>Das Feld *Verschlüsselungs-Key* in den Optionen ist seit dieser Version eine reine **Statusanzeige**. Sie müssen nichts eintragen oder erzeugen. Zeigt es einen „Alt-Schlüssel", stammt er aus einer früheren Version; der Wartungs-Task *Alt-verschlüsselte Bodies migrieren* stellt solche Einträge auf das neue Verfahren um und entfernt den Alt-Schlüssel danach selbst.

## Sensible Mails

Manche Mails sollten nie im Klartext im Log landen — Passwort-Resets, Bestätigungslinks, Einmal-Codes. Mail Log erkennt sie an der Betreffzeile und behandelt sie gesondert.

Im Reiter *Sensible Inhalte* stehen dafür zwei Musterlisten (je ein regulärer Ausdruck pro Zeile) und eine Richtlinie:

<table class="table" id="bkmrk-betreff-musterpasst-"> <tbody> <tr><td>**Betreff-Muster**</td><td>Passt der Betreff auf eines der Muster, gilt die Mail als sensibel. Ab Werk sind Muster für `password`, `passwort`, `reset`, `token`, `2fa`, `verify` und `verifizier` hinterlegt.</td></tr> <tr><td>**Behandlung sensibler Mails**</td><td>*Nur Metadaten* (Voreinstellung, kein Body, keine Anhänge), *Normal protokollieren* oder *Gar nicht protokollieren*.</td></tr> <tr><td>**Body-Masking-Muster**</td><td>Zusätzliche Muster, deren Treffer im gespeicherten Text durch `***` ersetzt werden — etwa `token=…` oder `key=…`.</td></tr> </tbody></table>

Mit den Voreinstellungen landet ein Passwort-Reset-Link also nicht im Log, ohne dass Sie etwas einrichten müssten.

<small>Gilt für Version 1.0.4.</small>

# Anhänge

Auf Wunsch sichert Mail Log die Anhänge versendeter Mails, damit Sie später nachvollziehen können, was genau verschickt wurde. Die Einstellungen dazu stehen in den *Optionen* im Reiter *Anhänge*.

## Wie Anhänge erfasst werden

Ist *Anhänge erfassen* aktiv, kopiert Mail Log beim Versand jeden Anhang in ein geschütztes Verzeichnis und vermerkt ihn im Log-Eintrag. In der Detailansicht erscheinen die Anhänge im Reiter *Anhänge* mit Name, Typ und Größe und lassen sich einzeln herunterladen (Recht *Anhänge und .eml herunterladen* vorausgesetzt).

## Wo Anhänge liegen — außerhalb des Web-Roots

<div class="callout success" id="bkmrk-ab-werk-werden-anh%C3%A4n">Ab Werk werden Anhänge **außerhalb des öffentlich erreichbaren Bereichs** abgelegt (im Joomla-Log-Verzeichnis unter `com_maillog/attachments`). Sie sind damit nicht direkt über eine URL abrufbar, sondern nur über die Komponente mit Rechteprüfung.

</div>Über *Speicherpfad* können Sie einen eigenen Ort festlegen. Bleibt das Feld leer, gilt der sichere Standardpfad. Zur zusätzlichen Absicherung legt Mail Log im Anhang-Verzeichnis Sperrdateien (`.htaccess`, `web.config`) ab.

<div class="callout info" id="bkmrk-kommen-sie-von-einer">**Kommen Sie von einer sehr frühen Version?** Frühere Builds legten Anhänge innerhalb des Web-Roots ab. Nach dem Update verweist Mail Log weiterhin auf den alten Ort, damit nichts verloren geht. Der Wartungs-Task *Anhang-Dateien umziehen* verschiebt die Dateien einmalig an den sicheren Standardort und räumt den alten Verweis danach ab.

</div>## Grenzen und Speicherbudget

<table class="table" id="bkmrk-optionstandardbedeut"> <thead> <tr><th scope="col">Option</th><th scope="col">Standard</th><th scope="col">Bedeutung</th></tr> </thead> <tbody> <tr><td>Anhänge erfassen</td><td>Ja</td><td>Anhänge beim Versand auf die Festplatte kopieren.</td></tr> <tr><td>Speicherpfad</td><td>leer (= sicherer Standard)</td><td>Ablageort der Anhänge.</td></tr> <tr><td>Max. pro Datei (MB)</td><td>10</td><td>Größere Anhänge werden übersprungen; die Metadaten (Name, Typ, Größe) bleiben trotzdem im Log.</td></tr> <tr><td>Gesamt-Speicherbudget (MB)</td><td>500</td><td>Ist das Budget erschöpft, werden neue Anhänge bis zum nächsten Aufräumen nicht mehr kopiert.</td></tr> </tbody></table>

## Aufräumen

Wie lange Anhang-Dateien aufbewahrt werden, steuert *Anhang-Aufbewahrung (Tage)* im Reiter *Aufbewahrung* (Standard 30 Tage). Der Wartungs-Task *Anhang-Dateien bereinigen* entfernt ältere Dateien und solche, deren Log-Eintrag bereits gelöscht wurde. Wie Sie diesen Task einrichten, steht im Kapitel [Wartung: geplante Aufgaben](https://docs.graup-it.de/books/mail-log/page/wartung-geplante-aufgaben).

## Sicherheit der Dateinamen

Mail Log bereinigt jeden Anhang-Dateinamen vor dem Speichern und entschärft potenziell ausführbare Endungen (etwa `.php`), indem es `.bin` anhängt. Zusammen mit dem Speicherort außerhalb des Web-Roots ist damit ausgeschlossen, dass ein Anhang auf dem Server ausgeführt werden kann.

<small>Gilt für Version 1.0.4.</small>

# Log-Regeln und Anzeigeregeln

Mail Log kennt zwei Arten von Regeln, die leicht zu verwechseln sind, aber sehr Unterschiedliches tun. Beide finden Sie in den *Optionen*.

<div class="callout info" id="bkmrk-log-regeln-entscheid">**Log-Regeln** entscheiden, welche Mails überhaupt gespeichert werden.  
 **Anzeigeregeln** entscheiden nur, welche gespeicherten Mails in der Liste erscheinen.

</div>## Log-Regeln: was gar nicht erst gespeichert wird

<figure id="bkmrk-log-regeln-filtern-s"> ![Der Optionen-Reiter Log-Regeln mit Modus und Regeltabelle](https://docs.graup-it.de/uploads/images/gallery/2026-07/ztudoku-06-log-regeln.png) <figcaption>Log-Regeln filtern schon vor dem Speichern.</figcaption></figure>Log-Regeln greifen **vor** dem Schreiben in die Datenbank. Damit halten Sie uninteressante Massen-Mails aus dem Log heraus — etwa laute Benachrichtigungen eines bestimmten Dienstes. Was eine Log-Regel ausschließt, entsteht gar nicht erst als Eintrag.

Zwei Einstellungen bestimmen das Verhalten:

<table class="table" id="bkmrk-moduspassende-aussch"> <tbody> <tr><td>**Modus**</td><td>*Passende ausschließen* — passende Mails werden NICHT protokolliert. *Nur passende einschließen* — NUR passende Mails werden protokolliert, alles andere wird verworfen.</td></tr> <tr><td>**Match**</td><td>Ob eine Mail *alle* Regeln (UND) oder *beliebige* (ODER) erfüllen muss.</td></tr> </tbody></table>

## Anzeigeregeln: was in der Liste ausgeblendet wird

Anzeigeregeln wirken **nach** dem Speichern. Passende Einträge werden lediglich in Liste und Dashboard ausgeblendet — gelöscht wird nichts. Ändern Sie die Regel, erscheinen die Einträge wieder. Nützlich, um eine überladene Ansicht aufzuräumen, ohne Daten zu verlieren.

## Wie eine Regel aufgebaut ist

Beide Regeltypen bestehen aus denselben Bausteinen. Jede Regel prüft ein **Feld** mit einem **Operator** gegen einen **Wert**:

<table class="table" id="bkmrk-feldbetreff%2C-body%2C-e"> <tbody> <tr><td>**Feld**</td><td>Betreff, Body, Empfänger oder Absender.</td></tr> <tr><td>**Operator**</td><td>enthält, enthält nicht, ist gleich, ist ungleich, beginnt mit, endet mit — bei Anzeigeregeln zusätzlich ist leer / ist nicht leer.</td></tr> <tr><td>**Wert**</td><td>Der Vergleichstext.</td></tr> </tbody></table>

## Beispiele

- **Cronjob-Mails nicht protokollieren:** Log-Regel, Modus *Passende ausschließen*, Feld *Absender*, Operator *enthält*, Wert `cron@`.
- **Nur Bestellmails protokollieren:** Log-Regel, Modus *Nur passende einschließen*, Feld *Betreff*, Operator *enthält*, Wert `Bestellung`.
- **Interne Test-Mails ausblenden:** Anzeigeregel, Feld *Empfänger*, Operator *endet mit*, Wert `@intern.example`.

<div class="callout warning" id="bkmrk-der-modus-nur-passen">Der Modus *Nur passende einschließen* bei den Log-Regeln ist scharf: Alles, was nicht passt, wird nicht protokolliert. Setzen Sie ihn nur bewusst ein und prüfen Sie danach, ob die gewünschten Mails noch im Log ankommen.

</div><small>Gilt für Version 1.0.4.</small>

# Benachrichtigungen bei Fehlern

Mail Log kann Sie aktiv warnen, wenn eine Zustellung fehlschlägt — so erfahren Sie von einem Mailproblem, ohne ständig ins Log schauen zu müssen. Die Einstellungen stehen in den *Optionen*im Reiter *Benachrichtigungen*.

<figure id="bkmrk-der-reiter-benachric"> ![Der Optionen-Reiter Benachrichtigungen](https://docs.graup-it.de/uploads/images/gallery/2026-07/wAEdoku-07-benachrichtigungen.png) <figcaption>Der Reiter *Benachrichtigungen*.</figcaption></figure>## Aktivieren und Empfänger wählen

<table class="table" id="bkmrk-optionstandardbedeut"> <thead> <tr><th scope="col">Option</th><th scope="col">Standard</th><th scope="col">Bedeutung</th></tr> </thead> <tbody> <tr><td>Benachrichtigungen aktivieren</td><td>Nein</td><td>Hauptschalter. Standardmäßig aus.</td></tr> <tr><td>Super Admins benachrichtigen</td><td>Ja</td><td>An alle Super Users senden, die in ihrem Profil *System-E-Mails empfangen* aktiviert haben.</td></tr> <tr><td>Zusätzliche Empfänger</td><td>leer</td><td>Weitere Adressen, eine pro Zeile oder durch Komma getrennt.</td></tr> <tr><td>Zusätzlich als Joomla-Privatnachricht</td><td>Nein</td><td>Legt den Alert zusätzlich als interne Nachricht (com\_messages) für jeden Super User ab.</td></tr> </tbody></table>

## Nicht zu viele Meldungen: die Drosselung

Damit ein reihenweises Fehlschlagen (etwa ein ausgefallener Mailserver) Sie nicht mit Hunderten Warnungen überflutet, fasst Mail Log Alerts zusammen.

<div class="callout info" id="bkmrk-%C3%9Cber-throttle-fenste">Über *Throttle-Fenster (Minuten)* (Standard 30) legen Sie den Mindestabstand zwischen zwei Alerts fest. Weitere Fehler innerhalb dieses Fensters werden gezählt, lösen aber keine weitere Meldung aus. Sie erhalten also eine Warnung, keine Lawine.

</div>## Kein Kreislauf

Die Warn-Mail selbst wird beim Versand nicht wieder als neuer Fehler behandelt — Mail Log verhindert gezielt, dass eine Benachrichtigung eine weitere auslöst. So kann kein Alarm-Kreislauf entstehen.

## Empfehlung

Für Produktivseiten lohnt es sich, Benachrichtigungen einzuschalten und mindestens die Super Admins als Empfänger zu behalten. So bemerken Sie einen Zustellausfall in Minuten statt erst bei der nächsten Kundenbeschwerde.

<small>Gilt für Version 1.0.4.</small>

# Konfigurationsreferenz

Alle Einstellungen erreichen Sie über die Schaltfläche **Optionen** oben rechts in jeder Ansicht von Mail Log. Diese Seite listet jede Option mit ihrer Voreinstellung. Einige Bereiche sind in eigenen Kapiteln ausführlicher beschrieben; hier finden Sie den vollständigen Überblick.

<div class="callout info" id="bkmrk-die-voreinstellungen">Die Voreinstellungen sind bewusst datensparsam gewählt und für die meisten Websites passend. Ändern Sie vor allem im Bereich *Body-Speicherung* und *Sensible Inhalte* nur, was Sie verstanden haben.

</div>## Logging

<table class="table" id="bkmrk-optionstandardbedeut"> <thead> <tr><th scope="col">Option</th><th scope="col">Standard</th><th scope="col">Bedeutung</th></tr> </thead> <tbody> <tr><td>Logging aktivieren</td><td>Ja</td><td>Hauptschalter. Aus = keine neuen Einträge; vorhandene bleiben zugänglich.</td></tr> <tr><td>Fehlgeschlagene Mails protokollieren</td><td>Ja</td><td>Auch Mails erfassen, die der Mailer als nicht versendet meldet.</td></tr> <tr><td>Kontexte protokollieren</td><td>Frontend, Backend, CLI, API</td><td>Wo protokolliert wird. Die vier Bereiche sind unabhängig wählbar.</td></tr> <tr><td>Quell-Erweiterung erkennen</td><td>Ja</td><td>Ermittelt die auslösende Erweiterung (Best-Effort). Abschalten spart minimal Aufwand pro Mail.</td></tr> </tbody></table>

## Body-Speicherung

<table class="table" id="bkmrk-optionstandardbedeut-1"> <thead> <tr><th scope="col">Option</th><th scope="col">Standard</th><th scope="col">Bedeutung</th></tr> </thead> <tbody> <tr><td>Speichermodus</td><td>Metadaten + erste N KB</td><td>Wie viel Text abgelegt wird (siehe Kapitel *Body-Speicherung, Verschlüsselung und sensible Inhalte*). Wirkt nur auf neue Einträge.</td></tr> <tr><td>Body-Aufbewahrung (Tage)</td><td>30</td><td>Nur bei „Vollständig, automatisches Löschen": nach dieser Frist entfernt der Task den Text.</td></tr> <tr><td>Zu behaltende Body-Größe (KB)</td><td>4</td><td>Nur bei „Metadaten + erste N KB": wie viele Kilobytes vom Anfang gespeichert werden.</td></tr> <tr><td>Maximale Body-Größe (KB)</td><td>1024</td><td>Globale Obergrenze. Größere Bodies werden gekürzt und markiert.</td></tr> <tr><td>Verschlüsselungs-Key</td><td>—</td><td>Reine Statusanzeige. Der Schlüssel wird aus dem geheimen Joomla-Schlüssel abgeleitet; nichts einzutragen.</td></tr> </tbody></table>

## Rohes MIME

<table class="table" id="bkmrk-rohes-mime-speichern"> <tbody> <tr><td>Rohes MIME speichern</td><td>**Nein**</td><td>Die exakte RFC822-Nachricht ablegen (für saubere .eml-Downloads). Aus Datenschutzgründen ab Werk aus.</td></tr> <tr><td>Rohes MIME verschlüsseln</td><td>Nein</td><td>Dieselbe Verschlüsselung wie für Bodies auf das MIME anwenden.</td></tr> </tbody></table>

## Anhänge

<table class="table" id="bkmrk-anh%C3%A4nge-erfassenjaje"> <tbody> <tr><td>Anhänge erfassen</td><td>Ja</td><td>Jeden Anhang beim Versand auf die Festplatte kopieren.</td></tr> <tr><td>Speicherpfad</td><td>leer (= sicherer Standard außerhalb des Web-Roots)</td><td>Ablageort der Anhänge.</td></tr> <tr><td>Max. pro Datei (MB)</td><td>10</td><td>Größere Anhänge werden übersprungen; Metadaten bleiben.</td></tr> <tr><td>Gesamt-Speicherbudget (MB)</td><td>500</td><td>Bei Überschreitung werden neue Anhänge bis zum nächsten Cleanup übersprungen.</td></tr> </tbody></table>

## Sensible Inhalte

<table class="table" id="bkmrk-behandlung-sensibler"> <tbody> <tr><td>Behandlung sensibler Mails</td><td>Nur Metadaten</td><td>Wie Mails behandelt werden, die auf die Betreff-Muster passen: nur Metadaten, normal oder gar nicht protokollieren.</td></tr> <tr><td>Betreff-Muster</td><td>`/password/i`, `/passwort/i`, `/reset/i`, `/token/i`, `/2fa/i`, `/verify/i`, `/verifizier/i`</td><td>Ein regulärer Ausdruck pro Zeile. Passt der Betreff, gilt die Mail als sensibel.</td></tr> <tr><td>Body-Masking-Muster</td><td>`/token=…/`, `/key=…/`</td><td>Treffer werden im gespeicherten Body durch `***` ersetzt.</td></tr> </tbody></table>

## Aufbewahrung

<table class="table" id="bkmrk-eintrag-aufbewahrung"> <tbody> <tr><td>Eintrag-Aufbewahrung (Tage)</td><td>180</td><td>Ältere Einträge entfernt der Task „Logs bereinigen". 0 = keine altersbasierte Bereinigung.</td></tr> <tr><td>Maximale Eintragszahl</td><td>0 (aus)</td><td>FIFO-Obergrenze: älteste Einträge werden entfernt, sobald die Grenze überschritten ist.</td></tr> <tr><td>Anhang-Aufbewahrung (Tage)</td><td>30</td><td>Ältere Anhang-Dateien entfernt der Anhang-Cleanup-Task.</td></tr> </tbody></table>

## Anzeigeregeln

<table class="table" id="bkmrk-matchalle-%28und%29ob-ei"> <tbody> <tr><td>Match</td><td>Alle (UND)</td><td>Ob eine Zeile alle oder beliebige Regeln erfüllen muss, um ausgeblendet zu werden.</td></tr> <tr><td>Regeln</td><td>leer</td><td>Blenden passende Einträge aus Liste und Statistik aus, ohne sie zu löschen. Siehe Kapitel *Log-Regeln und Anzeigeregeln*.</td></tr> </tbody></table>

## Log-Regeln

<table class="table" id="bkmrk-matchbeliebige-%28oder"> <tbody> <tr><td>Match</td><td>Beliebige (ODER)</td><td>Ob eine Mail alle oder beliebige Regeln treffen muss.</td></tr> <tr><td>Modus</td><td>Passende ausschließen</td><td>Passende ausschließen oder nur passende einschließen.</td></tr> <tr><td>Regeln</td><td>leer</td><td>Entscheiden vor dem Speichern, welche Mails überhaupt protokolliert werden.</td></tr> </tbody></table>

## Benachrichtigungen

<table class="table" id="bkmrk-benachrichtigungen-a"> <tbody> <tr><td>Benachrichtigungen aktivieren</td><td>Nein</td><td>Warnen, wenn eine Zustellung fehlschlägt.</td></tr> <tr><td>Super Admins benachrichtigen</td><td>Ja</td><td>An Super Users mit aktivierten System-E-Mails.</td></tr> <tr><td>Zusätzliche Empfänger</td><td>leer</td><td>Weitere Adressen.</td></tr> <tr><td>Throttle-Fenster (Minuten)</td><td>30</td><td>Mindestabstand zwischen zwei Alerts.</td></tr> <tr><td>Zusätzlich als Joomla-Privatnachricht</td><td>Nein</td><td>Alert auch intern (com\_messages) ablegen.</td></tr> </tbody></table>

## Dashboard

<table class="table" id="bkmrk-statistik-moduslivel"> <tbody> <tr><td>Statistik-Modus</td><td>Live</td><td>*Live* rechnet bei jedem Aufruf aus den Einträgen. *Task* nutzt vor-aggregierte Tageswerte, die der Statistik-Task pflegt — schneller bei sehr vielen Einträgen.</td></tr> <tr><td>Standard-Zeitraum</td><td>Letzte 30 Tage</td><td>Voreingestellter Zeitraum des Diagramms.</td></tr> <tr><td>Letzte Mails anzeigen</td><td>10</td><td>Wie viele Einträge die Dashboard-Listen zeigen.</td></tr> </tbody></table>

## Rechte

Der Standard-Reiter von Joomla. Welche Aktion welches Recht braucht, steht im Kapitel [Rechte, Export und Datenschutz](https://docs.graup-it.de/books/mail-log/page/rechte-export-und-datenschutz).

<small>Gilt für Version 1.0.4.</small>

# Wartung: geplante Aufgaben

Mail Log bringt Wartungsaufgaben mit, die über den Joomla-Aufgabenplaner laufen. Sie halten die Datenbank schlank, pflegen die Statistik und erledigen einmalige Umstellungen. Von allein läuft keine dieser Aufgaben — Sie richten sie im Aufgabenplaner ein.

## Eine Aufgabe einrichten

1. Öffnen Sie *System → Verwalten → Geplante Aufgaben* und klicken Sie auf *Neu*.
2. Wählen Sie im Auswahldialog einen der Mail-Log-Aufgabentypen (siehe Tabelle).
3. Vergeben Sie einen Namen, stellen Sie unter *Ausführungsregeln* das Intervall ein (z. B. täglich) und speichern Sie.
4. Aktivieren Sie die Aufgabe. Damit geplante Aufgaben tatsächlich laufen, muss der Joomla-Scheduler ausgelöst werden — per Website-Besuch (Standard) oder per echtem Cronjob.

<figure id="bkmrk-die-mail-log-aufgabe"> ![Der Auswahldialog neuer geplanter Aufgaben mit den Mail-Log-Aufgabentypen](https://docs.graup-it.de/uploads/images/gallery/2026-07/w7Hdoku-09-tasks.png) <figcaption>Die Mail-Log-Aufgabentypen im Aufgabenplaner.</figcaption></figure>## Die Aufgabentypen

<table class="table" id="bkmrk-aufgabezweck-alte-lo"> <thead> <tr><th scope="col">Aufgabe</th><th scope="col">Zweck</th></tr> </thead> <tbody> <tr><td>**Alte Log-Einträge bereinigen**</td><td>Löscht Einträge, die älter als die eingestellte Aufbewahrung sind, und erzwingt die maximale Eintragszahl (FIFO). Gebatcht, damit auch große Tabellen schonend abgearbeitet werden.</td></tr> <tr><td>**Anhang-Dateien bereinigen**</td><td>Entfernt verwaiste Anhang-Dateien (deren Eintrag gelöscht wurde) und Dateien, die älter als die Anhang-Aufbewahrung sind.</td></tr> <tr><td>**Tagesstatistiken aktualisieren**</td><td>Pflegt die vor-aggregierten Tageswerte für das Dashboard. Nur nötig, wenn Sie den Statistik-Modus auf *Task* gestellt haben.</td></tr> <tr><td>**Alte Mail-Bodies bereinigen**</td><td>Setzt bei alten Einträgen den Text zurück und behält nur die Metadaten. Nur wirksam beim Speichermodus „Vollständig, automatisches Löschen nach N Tagen".</td></tr> <tr><td>**Alt-verschlüsselte Bodies migrieren**</td><td>Einmalige Umstellung: schlüsselt Einträge aus einer früheren Version auf das aktuelle Verfahren um und entfernt den alten Schlüssel, sobald nichts mehr davon abhängt. So oft ausführen, bis keine Alt-Einträge mehr gemeldet werden.</td></tr> <tr><td>**Anhang-Dateien umziehen**</td><td>Einmalige Umstellung: verschiebt Anhänge aus einem alten Speicherort (innerhalb des Web-Roots) an den sicheren Standardort. So oft ausführen, bis keine Dateien mehr übrig sind.</td></tr> </tbody></table>

## Empfehlung für den Regelbetrieb

Für die meisten Websites genügen zwei täglich laufende Aufgaben:

- **Alte Log-Einträge bereinigen** — hält die Tabelle im Rahmen.
- **Anhang-Dateien bereinigen** — nur nötig, wenn Sie Anhänge erfassen.

Die beiden Migrations-Aufgaben (*Alt-verschlüsselte Bodies migrieren*, *Anhang-Dateien umziehen*) brauchen Sie nur, wenn Sie von einer sehr frühen Version aktualisiert haben. Nach erledigter Migration können Sie sie deaktivieren oder löschen. *Tagesstatistiken aktualisieren*und *Alte Mail-Bodies bereinigen* sind nur bei den passenden Einstellungen sinnvoll.

<div class="callout info" id="bkmrk-alle-bereinigungsauf">Alle Bereinigungsaufgaben arbeiten in Blöcken und mit klaren Obergrenzen, damit sie den Server auch bei sehr großen Datenbeständen nicht überlasten.

</div><small>Gilt für Version 1.0.4.</small>

# Rechte, Export und Datenschutz

Mail Log speichert potenziell sensible Kommunikationsdaten. Diese Seite fasst zusammen, wer was darf, was exportiert wird und welche Daten überhaupt gespeichert werden.

## Berechtigungen

Die Rechte vergeben Sie wie bei jeder Joomla-Komponente unter *Optionen → Rechte* je Benutzergruppe. Mail Log trennt bewusst zwischen Ansehen und Lesen der Inhalte:

<table class="table" id="bkmrk-rechterlaubt-mail-lo"> <thead> <tr><th scope="col">Recht</th><th scope="col">Erlaubt</th></tr> </thead> <tbody> <tr><td>**Mail Log ansehen**</td><td>Dashboard und Liste öffnen — die Metadaten, aber nicht zwingend die Nachrichtentexte.</td></tr> <tr><td>**Mail-Inhalt ansehen**</td><td>Die vollständigen Bodies (HTML, Text, MIME) lesen. Getrennt vergeben, weil Bodies sensible Daten enthalten können.</td></tr> <tr><td>**Anhänge und .eml herunterladen**</td><td>Angehängte Dateien und die rohe Nachricht herunterladen.</td></tr> <tr><td>**Mails erneut senden**</td><td>Protokollierte Mails erneut zustellen.</td></tr> <tr><td>**Einträge löschen**</td><td>Log-Einträge entfernen.</td></tr> <tr><td>**Demo-Daten verwalten**</td><td>Testeinträge erzeugen und löschen.</td></tr> </tbody></table>

<div class="callout info" id="bkmrk-jede-aktion-pr%C3%BCft-ih">Jede Aktion prüft ihr Recht serverseitig — nicht nur die Oberfläche blendet Schaltflächen aus. So kann eine Aktion auch nicht durch einen direkten Aufruf erzwungen werden. Ein Redakteur mit „Mail Log ansehen", aber ohne „Mail-Inhalt ansehen" sieht die Liste, aber keine Texte.

</div>Empfehlung: Vergeben Sie *Mail-Inhalt ansehen* und *Anhänge und .eml herunterladen*sparsam — idealerweise nur an die Personen, die tatsächlich Zustellprobleme untersuchen.

## Export

Die Schaltfläche *CSV exportieren* in der Liste gibt die aktuell gefilterte Auswahl als CSV-Datei aus. Der Export enthält Kennung, Zeit, Status, Absender, Empfänger, Betreff, Quelle, Kontext und die Fehlermeldung — **nicht** jedoch den Nachrichtentext. Wer Bodies braucht, öffnet den Eintrag oder lädt die .eml-Datei herunter (mit den entsprechenden Rechten).

<div class="callout info" id="bkmrk-freitextfelder-werde">Freitextfelder werden im CSV so aufbereitet, dass Tabellenprogramme sie nicht versehentlich als Formel interpretieren. Der Export lässt sich damit gefahrlos in Excel oder LibreOffice öffnen.

</div>## Welche Daten gespeichert werden

Pro Mail speichert Mail Log Absender und Empfänger, Betreff, Zeit und Status, den Kontext sowie — sofern vorhanden — die IP-Adresse und die Benutzer-Kennung des Auslösers. Wie viel vom Text abgelegt wird, bestimmen Sie über den Speichermodus; ab Werk ist das nur ein kurzer Auszug, und sensible Mails werden nur mit Metadaten gespeichert.

## Datenschutz-Hinweise für den Betrieb

- **Aufbewahrung begrenzen.** Setzen Sie eine Eintrags-Aufbewahrung (Standard 180 Tage) und richten Sie die Bereinigungsaufgabe ein, damit alte Daten nicht unbegrenzt liegen bleiben.
- **Sparsam speichern.** Für die meisten Zwecke reicht der Standard „Metadaten + Auszug". Vollständige oder rohe Speicherung nur, wenn Sie sie wirklich brauchen.
- **Verschlüsseln, wenn Sie Bodies vollständig behalten.** Die verschlüsselte Speicherung hält den Schlüssel außerhalb der Datenbank.
- **Rechte eng fassen.** Trennen Sie das Lesen der Inhalte vom bloßen Ansehen der Liste.
- **Auskunft und Löschung.** Für Betroffenenanfragen filtern Sie die Liste nach der Adresse und exportieren oder löschen gezielt.

Alle Daten bleiben auf Ihrem Server — Mail Log kontaktiert keine externen Dienste.

<small>Gilt für Version 1.0.4.</small>

# Häufige Fragen und Fehlerbehebung

Antworten auf häufige Fragen und die schnellsten Wege zur Fehlerbehebung.

## Es werden gar keine Mails protokolliert

- Prüfen Sie, ob das **System-Plugin** `plg_system_maillog` aktiviert ist (*System → Plugins*). Ohne dieses Plugin wird nichts erfasst.
- Steht in den Optionen *Logging aktivieren* auf Ja?
- Ist der Kontext ausgewählt, in dem die Mail entsteht? Eine Mail aus einem Cron-Aufruf wird nur erfasst, wenn *CLI* aktiviert ist.
- Schließen **Log-Regeln** die Mail aus? Prüfen Sie besonders den Modus *Nur passende einschließen*.

<div class="callout info" id="bkmrk-schl%C3%A4gt-die-einbindu">Schlägt die Einbindung des Mailers einmal fehl (etwa nach einem größeren Joomla-Update), meldet Mail Log das im Backend mit einer Warnung und schreibt es ins Joomla-Log — Sie merken es also, statt im Stillen keine Einträge mehr zu bekommen.

</div>## Ich sehe die Liste, aber keine Nachrichtentexte

Zum Lesen der Bodies brauchen Sie das Recht *Mail-Inhalt ansehen* — es ist bewusst vom bloßen Ansehen getrennt. Lassen Sie es Ihrer Gruppe unter *Optionen → Rechte* zuweisen.

## Ein Eintrag zeigt „Nur Metadaten" statt Text

Das ist meist Absicht: Die Mail wurde als sensibel eingestuft (z. B. ein Passwort-Reset) und deshalb ohne Body gespeichert. Alternativ speichert der Standardmodus nur einen kurzen Auszug. Beides steuern Sie in den Optionen unter *Body-Speicherung* und *Sensible Inhalte* — Änderungen wirken auf neue Einträge.

## „Erneut senden" ist nicht möglich

Wurde die Mail nur mit Metadaten oder verkürzt gespeichert, fehlt der vollständige Text und die Mail kann nicht rekonstruiert werden. Bei verschlüsselten Bodies muss der geheime Joomla-Schlüssel unverändert sein. Kam die Meldung zu einer Wartezeit: Zwischen zwei Versänden derselben Mail liegen 30 Sekunden, und maximal 20 Wiederholungen sind möglich.

## Das Update wird nicht gefunden oder schlägt fehl

- Klicken Sie zuerst auf *Auf Updates prüfen*, um den Zwischenspeicher zu aktualisieren.
- Ist der **Download-Schlüssel** bei der Update-Quelle eingetragen — und **ohne Leerzeichen** am Anfang oder Ende? Ein mitkopiertes Leerzeichen führt zu „Paketdownload fehlgeschlagen".
- Notfalls die neue Version manuell herunterladen und über *System → Installieren* einspielen.

## Verschlüsselte Einträge sind plötzlich unlesbar

Der Schlüssel wird aus dem geheimen Joomla-Schlüssel (in `configuration.php`) abgeleitet. Wurde dieser geändert, lassen sich zuvor verschlüsselte Bodies nicht mehr entschlüsseln. Der geheime Schlüssel sollte nur bewusst und mit Bedacht gewechselt werden.

## Die Datenbank wächst stark

Richten Sie die Aufgabe *Alte Log-Einträge bereinigen* ein und setzen Sie eine Eintrags-Aufbewahrung (Standard 180 Tage) oder eine maximale Eintragszahl. Speichern Sie außerdem nur so viel Body, wie Sie wirklich brauchen — der Standard „Metadaten + Auszug" ist schon sparsam.

## Wo liegen die Anhänge?

Ab Werk außerhalb des öffentlich erreichbaren Bereichs, im Joomla-Log-Verzeichnis unter `com_maillog/attachments`. Sie sind nur über die Komponente mit Rechteprüfung erreichbar, nicht per direkter URL.

## Was passiert beim Deinstallieren?

Die vier Datenbanktabellen mit allen Log-Daten werden entfernt. Bereits erfasste Anhang-Dateien bleiben im geschützten Verzeichnis liegen, damit ein versehentliches Deinstallieren keine Beweismittel vernichtet — löschen Sie diesen Ordner bei Bedarf von Hand.

<small>Gilt für Version 1.0.4.</small>

# Änderungsprotokoll

Dieses Änderungsprotokoll listet alle veröffentlichten Versionen von Mail Log, die neueste zuerst.

<div class="callout info" id="bkmrk-diese-seite-wird-bei">Diese Seite wird beim Release automatisch aus der Änderungsdatei des Produkts erzeugt. Änderungen von Hand gehen beim nächsten Abgleich verloren.

</div>## Version 1.0.4 – 12.08.2026

### Geändert

- Die Installationsangaben der drei Bestandteile wurden von wirkungslosen Einträgen befreit, damit das Paket die Prüfung des Joomla! Extensions Directory besteht.

### Behoben

- Eine englische Meldung der Übersicht endete mit einem überflüssigen Leerzeichen.

## Version 1.0.3 – 01.08.2026

### Geändert

- Das Paket und seine drei Bestandteile tragen im Erweiterungs-Manager jetzt sprechende Namen; bisher standen dort technische Kürzel.

## Version 1.0.2 – 31.07.2026

### Hinzugefügt

- E-Mails aus Kommandozeilen- und Scheduler-Läufen werden protokolliert; bisher wurde dort nichts erfasst.
- Die Option „Protokollierte Kontexte“ wirkt jetzt tatsächlich. Ohne Auswahl wird weiterhin jeder Kontext protokolliert.
- Die Liste weist auf Einträge aus früheren Versionen hin, die keinen Nachrichtentext enthalten können, und verlinkt sie zum Löschen.

### Geändert

- Der Download der rohen Nachricht verlangt jetzt zusätzlich die Berechtigung „Nachrichtentext ansehen“. Gruppen ohne sie verlieren den Download; Super-User sind nicht betroffen.
- Neuinstallationen protokollieren ab Werk vollständig: kompletter Nachrichtentext, Roh-Nachricht und auch Mails mit sensiblem Betreff. Bestehende Installationen behalten ihre Einstellungen.

### Behoben

- Der Nachrichtentext protokollierter E-Mails blieb immer leer. Er wird jetzt wieder erfasst, ebenso Anhänge, Antwort-an, Kopfzeilen und die Fehlermeldung fehlgeschlagener Sendungen.
- Der erneute Versand aus dem Protokoll funktioniert wieder — ohne gespeicherten Nachrichtentext war er nicht möglich.
- Bei verschlüsselter Speicherung griffen die Maskierungsmuster für sensible Inhalte nie. Maskiert wird jetzt vor dem Verschlüsseln.
- Auf frischen Installationen wurde nichts maskiert, obwohl die Optionen zwei Maskierungsmuster als aktiv anzeigten.
- Die Erkennung von HTML-Nachrichten berücksichtigt jetzt auch mehrteilige Nachrichten und einen gesetzten Alternativtext.
- Bei gekürzt gespeichertem Nachrichtentext zeigte die Detailansicht die Originalgröße nicht an.
- Beim Speichern der Optionen wurden Anhänge aus Versionen vor 0.1.0 unzugänglich, weil ihr Ablageort verloren ging.
- Der Optionen-Button erschien auch für Gruppen ohne die nötige Berechtigung und wies beim Klick ab.

## Version 1.0.1 – 31.07.2026

### Hinzugefügt

- Nach Installation und Update erscheint ein Übersichtsfenster mit Version, Status und Einstiegen zu Erste Schritte, Download-Schlüssel und Handbuch.
- Ein Klick auf „Updates aktivieren“ führt direkt zu den Update-Quellen, bereits auf fehlende Download-Schlüssel gefiltert.
- Der Erweiterungs-Manager zeigt hinter der Versionsnummer die Liste der Änderungen.

### Sprache

- Die Meldungen bei Installation und Update liegen in Deutsch und Englisch vor.

## Version 1.0.0 – 20.07.2026

### Geändert

- Das Symbol der Erweiterung zeigt jetzt die Mail-Log-Marke.

### Behoben

- Der Haupteintrag im Administrationsmenü zeigte kein Symbol.

### Hinweise

- Erstes stabiles Release. Funktionsstand von 0.1.2, gehärtet durch das Audit der 0.1.x-Reihe.

## Version 0.1.2 – 20.07.2026

### Behoben

- Scheduler-Aufgaben zeigten im Auswahldialog rohe Textbausteine statt Titel und Beschreibung.
- Der Hinweis auf die gekürzte Speicherung nannte einen Platzhalter statt der eingestellten Größe.
- Eine veraltete Beschreibung des Verschlüsselungsfelds in den Optionen wurde entfernt.

## Version 0.1.1 – 17.07.2026

### Behoben

- Version 0.1.0 hätte nie Updates gefunden: Die Update-Adresse war falsch und der Download-Schlüssel wurde nicht übergeben.

## Version 0.1.0 – 17.07.2026

### Sicherheit

- Der CSV-Export ist gegen eingeschleuste Tabellenformeln gehärtet.
- Der Schlüssel für die Verschlüsselung liegt nicht mehr in der Datenbank. Alt-verschlüsselte Einträge bleiben lesbar und werden von einer Aufgabe umgeschlüsselt.
- Anhänge liegen jetzt außerhalb des Web-Verzeichnisses. Bestehende Dateien bleiben erreichbar; eine Aufgabe verschiebt sie.
- Datenschutz ab Werk: Vom Nachrichtentext wird nur noch ein Auszug gespeichert, die Roh-Nachricht gar nicht, und Passwort-Mails landen nicht mehr im Klartext.
- Eine fehlgeschlagene Protokollierung wird jetzt gemeldet statt still übergangen.

### Geändert

- Listen, Dashboard und Statistik sind spürbar schneller.

### Behoben

- „Erneut senden“ und „Demo-Daten löschen“ funktionieren wieder.
- Der CSV-Export enthält alle gefilterten Einträge statt nur der ersten Seite und ist speicherschonend.
- Das Sendelimit beim erneuten Senden greift jetzt zuverlässig.
- Die Statistik-Aufgabe erzeugte überflüssige Doppeleinträge.

### Sprache

- Alle Meldungen liegen in Deutsch und Englisch vor.

### Hinweise

- Nach dem Update die Aufgaben zum Umschlüsseln und zum Verschieben der Anhänge einmalig ausführen, bis keine Restbestände mehr gemeldet werden.
- Wird das Sicherheitsgeheimnis von Joomla gewechselt, sind verschlüsselte Einträge nicht mehr lesbar.

## Version 0.0.24 – 20.04.2026

### Hinweise

- Letzter Stand vor der Sanierung.