Ein Kunde hat mich gefragt, ob sich eine Mailbox so einrichten lässt, dass automatisch alle ein- und ausgehenden Mails archiviert werden.
Eigentlich eine typische Anwendung für eine MS Exchange (Online) Mailbox, aber hier suchen wir nach einer Lösung für eine normale IMAP Mailbox auf einem Webserver.
Und zwar am besten eine Lösung, die der Benutzer der Mailbox nicht ohne weiteres deaktivieren kann.
Nach ein wenig suchen habe ich eine Lösung gefunden, die für mich und meine Server mit Plesk Admin-Oberfläche, Postfix SMTP Server und Roundcube Webmail gut funktioniert.
Der Ansatz wird im Original hier beschrieben: https://webmasters.stackexchange.com/questions/57746/plesk-email-journaling
Zunächst einmal richtet man neben der Mailbox, die archiviert werden soll, eine zweite ein. Die wird dann das Archiv. Bei mir sind das test@meinedomain.at und test-archive@meinedomain.at.
Zugriff auf test-archive@meinedomain.at hat nur der Admin, nicht aber der Besitzer der zu archivierenden Mailbox.
Das Archivieren eingehender Mails ist einfach, man konfiguriert auf dem Mailserver einfach eine Weiterleitung an die Archiv-Adresse. Das sieht man im Webmail nicht, auch nicht in anderen Mail-Clients wie Outlook. Der Besitzer der Mailbox kann das also nicht einfach abschalten.
Update 3.5.2021:
Für die eingehenden Mails kann man zwar wie oben beschrieben eine Weiterleitung einrichten, aber ich habe jetzt herausgefunden, dass es auch dafür ein Postfix-Kommando gibt. Beschreibe ich unten.
Mit den ausgehenden Mails ist das schon etwas komplizierter.
Man könnte im Webmail eine BCC Adresse definieren. Die erzwingt aber keine Weiterleitung an das Archiv, sondern sorgt nur dafür, dass bei jeder neuen Mail das BCC Feld ausgefüllt ist. Kann man aber wieder löschen, bevor die Mail rausgeht.
Also muss die Weiterleitung auf dem Server erfolgen, was ich hier für den SMTP Server Postfix beschreibe, den ich auf meinen Servern einsetze.
Dazu benötigt man Zugriff auf die Postfix-Konfiguration, was man nur hat, wenn man den Server selbst betreibt.
Per Putty oder SSH auf den Server zugreifen.
Im Verzeichnis /etc/postfix liegen die Postfix-Konfigurationsdateien.
Wir erstellen hier zuerst eine Datei, in der die Mailadressen, die archiviert werden sollen, eingetragen sind. Jeweils dahinter, durch ein Leerzeichen oder Tab getrennt, die Namen der entsprechenden Archiv-Mailboxen:
Neue Datei /etc/postfix/sender_bcc
:
test@meinedomain.at test-archive@meinedomain.at
Update: Das gleiche machen wir für eingehende Mails, d.h. wir legen auch noch die Datei /etc/postfix/recipient_bcc
mit dem gleichen Inhalt an:
test@meinedomain.at test-archive@meinedomain.at
Jede zu archivierende Mailbox bekommt in diesen Dateien eine Zeile.
Dann fügen wir die folgenden Zeilen am Ende der Datei /etc/postfix/main.cf
ein:
# forward mails sent by some mailboxes to another address for archiving
# sender_bcc file contains 'from@mail.at to@mail.at' address pairs
sender_bcc_maps = hash:/etc/postfix/sender_bcc
recipient_bcc_maps = hash:/etc/postfix/recipient_bcc
Damit diese Konfiguration aktiv wird, sind noch zwei Kommandos nötig:
root@host:/etc/postfix# postmap /etc/postfix/sender_bcc
root@host:/etc/postfix# postmap /etc/postfix/recipient_bcc
root@host:/etc/postfix# postfix reload
Damit werden jetzt alle Mails, die test@meinedomain.at schreibt, an test-archive@meinedomain.at weitergeleitet.
Und alle Mails die test@meinedomain.at empfängt, gehen ebenfalls an test-archive@meinedomain.at
So weit, so gut.
Allerdings sind im Posteingang von test-archive@meinedomain.at jetzt die Mails die test@meinedomain.at empfangen oder gesendet hat, bunt gemischt. Nicht dramatisch, aber auch nicht schön.
Damit die Mails, die test@meinedomain.at gesendet hat, in einem eigenen Ordner (z.B. “Gesendet”) landen, definieren wir einfach eine Regel im Webmail des Archiv-Postfaches.
Bei meinem Roundcube Webmail sieht das wie folgt aus.
Eine Regel mit “Von” “ist gleich” funktioniert bei mir übrigens nicht, ich musste “Von” “enthält” benutzen. Warum auch immer…
Damit landet jede Mail, die test@meinedomain.at sendet, im “Gesendet” Ordner von test-archive@meinedomain.at.
Und alles was test@meinedomain.at empfängt, landet im Posteingang von test-archive@meinedomain.at
Damit hat man ein “Archiv” der Mailbox.
Zur Beweisführung taugt so ein Archiv übrigens nicht, denn es nicht sichergestellt, dass niemand die Mails im Archiv verändert. Und das wäre nötig, um ein “beweissicheres Archiv” zu erstellen.
Um sicher zu gehen, dass keine Mails verschwinden, reicht diese Methode aber.
Plesk bzw. der Roundcube Webmailer speichern die Regeln übrigens hier:
/var/qmail/mailnames/meinedomain.at/test-archive/sieve/roundcube.sieve