Die Konfiguration der Archivierung (benno-archive) wird in der Datei /etc/benno/benno.xml vorgenommen, während die Einstellungen für das Web-Interface (benno-web) in der Datei /etc/benno-web/benno.conf erfolgt.
Für ein lauffähiges System muss nach der Installation ausschließlich das Passwort für die Kommunikation zwischen Benno REST und Benno Web gesetzt werden. In der Datei /etc/benno/rest.secret wird das Passwort in die erste Zeile eingegeben.
echo 'ganzGeheimesUndSicheresPasswort' > /etc/benno/rest.secret history -c chown benno.benno /etc/benno/rest.secret chmod 0440 /etc/benno/rest.secret
Für das Web-Interface wird es in der Datei /etc/benno-web/rest.conf als Parameter SHARED_SECRET = … eingetragen.
echo 'SHARED_SECRET = ganzGeheimesUndSicheresPasswort' > /etc/benno-web/rest.conf history -c chgrp www-data /etc/benno-web/rest.conf chmod 0440 /etc/benno-web/rest.conf
Bei beiden Dateien sollte darauf geachtet werden, dass diese im Falle der /etc/benno/benno.xml ausschließlich für den Benutzer „benno“ und im Falle der /etc/benno-web/benno.conf nur für den Benutzer des Webservers (z.B. „www-data“ oder „wwwrun“) lesbar ist.
Falls nur externe E-Mails archiviert werden sollen, bietet sich die Konfiguration per Regex an. Hierbei werden nur die E-Mails archiviert, bei denen die Senderadresse oder mindestens eine Empfängeradresse nicht zur lokalen Domain gehören.
<simplecontainer> <identifier>BennoContainer</identifier> <conditions> <domain sender="true" recipient="true" regex="true">(?i)^((?!\blw-systems\.net\b).)*$</domain> </conditions> ...
ACHTUNG Das (?i) zu Beginn des regulären Ausdrucks bewirkt, daß der Pattern-Match case-insensitiv erfolgt! Dieses betrifft nur ASCII-Zeichen. Der erweiterte Zeichenraum der Unicode-Zeichen wird mit „(?u)“ Case-Insenstive geschaltet. Dieses ist hier aber nicht notwendig, da E-Mail Adressen nur aus dem ASCII-Zeichenraum gebildet werden.
Achtung! Das Semikolon „;“ ist laut RFC2822 und RFC2822 kein Trenner einzelner Adressen, sondern dient in Verbindugn mit dem „:“ dazu eine Gruppe einzuklammern.
Falls nur einzelne Adressen archiviert werden sollen, werden die „<not />“ Tags weggelassen.
<simplecontainer> <identifier>BennoContainer</identifier> <conditions> <or> <address sender="true" recipient="true" from="true" to="true" cc="true">buchhaltung@lw-systems.net</address> <address sender="true" recipient="true" from="true" to="true" cc="true">buchhaltung@lw-systems.com</address> </or> </conditions> ...
Die Bedingungen innerhalb des <address />-Tags sind per OR verknüpft.
Neben der Möglichkeit auf einzelne Adressen zu filtern, kann dieses auch auf Basis der Domain erfolgen. Hier sind die folgenden Kriterien möglich:
Die einzelnen Tags können mit den Verknüpfungsoperatoren <and />, <or /> und <not /> verbunden werden.
In einigen Fällen ist es notwendig, dass E-Mails an spezielle Adressen (z.B. die E-Mail Adressen des Betriebsrats) nicht in die Archivierung aufgenommen werden. Hierfür wird in der /etc/benno/benno.xml in der Konfiguration des Containers ein entsprechender Filter definiert.
... <simplecontainer> <identifier>BennoContainer</identifier> <conditions> <not> <or> <address sender="true" recipient="true" from="true" to="true" cc="true">bewerbungen@lw-systems.net</address> <address sender="true" recipient="true" from="true" to="true" cc="true">bewerbungen@lw-systems.com</address> </or> </not> </conditions> ...
Hier werden E-Mails von oder an die Adressen bewerbungen@lw-systems.net oder bewerbungen@lw-systems.com nicht in die Archivierung aufgenommen.
... <conditions> <and> <or> <domain sender="true" recipient="true" from="true" to="true" cc="true">lw-systems.com</domain> <domain sender="true" recipient="true" from="true" to="true" cc="true">lw-systems.net</domain> </or> <not> <or> <address sender="true" recipient="true" from="true" to="true" cc="true">betriebsrat@lw-systems.com</address> <address sender="true" recipient="true" from="true" to="true" cc="true">betriebsrat@lw-systems.net</address> </or> </not> </and> </conditions>
Die Kriterien sind generell per <OR> verknüft. Das heißt, bei einer Konfiguration wie hier aufgeführt, werden alle E-Mails archiviert.
Die <not /> Bedingung greift in diesem Fall nicht, da sie mit <all /> per ODER verknüpft ist!
<conditions> <all /> <not> <or> <domain>srv123.nordregen.de</domain> <domain>srv456.nordregen.de</domain> </or> </not> </conditions>
Eine E-Mail kann unter Umständen nicht alle Informationen über die E-Mail enthalten. Die BCC-Empfänger einer E-Maill werden unter Umständen nur im SMTP Protokoll durch die Envelope-Informationen übermittelt.
Falls die Informationen mit Hilfe eines Headers in der E-Mail gespeichert sind, kann Benno MailArchiv diese Informationen auswerten. Die Konfiguration erfolgt in der benno.xml.
<mailfile> <senderheaders> <name>X-REAL-MAILFROM</name> <name>RECIPIENT-FROM</name> <name>From</name> </senderheaders> <recipientheaders> <name>X-REAL-RCPTTO</name> <name>RECIPIENT-TO</name> <name>BCC</name> <name>To</name> <name>Cc</name> </recipientheaders> <secretheaders> <name>X-REAL-MAILFROM</name> <name>RECIPIENT-FROM</name> <name>X-REAL-RCPTTO</name> <name>RECIPIENT-TO</name> <name>BCC</name> <name>SIMPLE-Test-header</name> </secretheaders> </mailfile>
Die Zuordnung von Sender- und Empfängerdaten erfolgt innerhalb der Tags <senderheaders /> bzw. <recipientheaders />.
Ein Benutzer hat auf die E-Mails Zugriff, bei denen einer der Header in <senderheaders /> oder in </recipientheaders /> seine E-Mail Adresse enthält.
Die Konfiguration <secretheades /> dient dazu, die Header zu verbergen, die bei der Archivierung ausschließlich dazu dienen, daß die Envelope-Informationen nicht verloren gehen. Dieses sind z.B. die Envelope-Header, die von benno-milter hinzugefügt werden.
Alle Header, die im Tag <secretheaders /> aufgeführt sind, werden vor Berechnung der Checksumme und dem Speichern aus der E-Mail entfernt. Diese Informationen sind ausschließlich im Index und im Header der Datei im Repository vorhanden.
Die Berechnung dieser Checksumme wird mit dem Tag <customhash /> innerhalb der <mailfile /> Konfiguration eingestellt.
<mailfile> <senderheaders> ... </senderheaders> <recipientheaders> ... </recipientheaders> <secretheaders> ... </secretheaders> <customhash> <name>From</name> <name>To</name> <name>Subject</name> <name>Date</name> <name>Message-Id</name> </customhash> </mailfile>
Im Beispiel wird diese Checksumme über die Header From:, To:, Subject:, Date: und Message-Id gebildet. Die vereinfachte Checksumme bildet die interne Id der archivierten E-Mail und dient zur Duplikatserkennung. Zusätzlich wird hier noch die komplette Checksumme der E-Mail gespeichert.