Inhaltsverzeichnis

Konfiguration

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.

Basis-Konfiguration

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.

Spezielle Einstellungen

Nur externe E-Mails archivieren

Reguläre Ausdrücke

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.

E-Mail Adressen filtern

Achtung! Das Semikolon „;“ ist laut RFC2822 und RFC2822 kein Trenner einzelner Adressen, sondern dient in Verbindugn mit dem „:“ dazu eine Gruppe einzuklammern.

Einzelne Adressen archivieren

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.

Adressen ausschließen

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.

Domain mit Ausschluss einzelner Adressen

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

Generelle Verknüpfung der Kriterien

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>

Envelope-Header

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.

<secretheaders />

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.

Vereinfachte Checksumme

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.