Benutzer-Werkzeuge

Webseiten-Werkzeuge


benno.xml

benno.xml

Konfigurationsdatei: /etc/benno/benno.xml

Struktur Configdatei

configuredarchives

Container der die in diesem Benno System konfigurierten Archive enthält.

simplearchive

Einfaches Archiv ohne Container.

containerarchive

identifier

Name des Archivs zur Verwaltung

conditions

OR-Verknüpfung verschiedener Kriterien.

  • <all/>
  • <and>…</and>
  • <not>…</not>
  • <or>…</or>
    • <or><address ...>...</address><address ...>...</address></or>
  • <none /> - Bedingung trifft nie zu
  • <address sender="true" recipient="true">user@domain</address>
    • sender = "true"
    • recipient = "true"
    • from = "true"
    • to = "true"
    • cc = "true"
    • regex = "true"
  • <domain sender="true" recipient="true">domain</domain> - Vergleicht nur den Domain-Name
    • sender = "true"
    • recipient = "true"
    • from = "true"
    • to = "true"
    • cc = "true"
    • regex = "true"

Alle nicht gesetzten Attribute sind per Default auf true gesetzt.

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

not

Einzelne E-Mail Adresse nicht aktivieren

<conditions>
  <not>
    <address sender="true" recipient="true" from="true" to="true" cc="true">blockme@hansen-und-meyer.de</address>
  </not>
</conditions>

Hier wird jede E-Mail, die die Adresse blockme@hansen-und-meyer.de in einem der Sender- oder Empfänger Header enthält nicht archiviert! Dieses ist unabhängig davon, ob die E-Mail per CC an eine Adresse geschickt wurde, die archiviert werden soll.

Regex

<domain sender=„true“ recipient=„true“ regex=„true“>(?i)^((?!\blw-systems\.net\b).)*$</domain>

Der regläre Ausdruck wird als Java-Regex interpretiert.

Hinweise

Prüfung der Kriterien

Aus den konfigurierten Headern für Sender- und Empfänger werden die eigentlichen Adressen (der Form „personal@domain“) als Token extrahiert. Nur dieser String wird mit der konfigurierten Adresse verglichen. Vor dem Vergleich werden die „<“ und „>“ ebenfalls entfernt. Bei der Prüfung wird die Groß- und Kleinschreibung nicht beachtet.

Die Prüfung der Token erfolgt einzeln gegen jeden der konfigurierten logischen Ausdrücke. Bei der Prüfung wird der Zustand (State) der E-Mail nicht gespeichert, so daß keine Entscheidung der Form WENN abc@domain UND NICHT def@domain getroffen werden kann.

Alle E-Mails der Inbox werden gelöscht! Dieses betrifft auch E-Mails, auf die keines der Kriterien zutrifft.

Zuordnung

Jede E-Mail durchläuft alle konfigurierten Archive und Container. Sobald ein Kriterium zutrifft, wird die jeweilige E-Mail indexiert und im entsprechenden Repository gespeichert.

Nach Durchlauf aller konfigurierten Komponenten wird die E-Mail gelöscht.

readonly

Archiv ist abgeschlossen.

directorywatcher

Überwachung eines Verzeichnisses zum Mailimport.

<directorywatcher directory="/srv/benno/inbox" pattern=".*\.eml">
  <mailfile>...</mailfile>
</directorywatcher>

Parser

  • mailfile
  • bennomailfile

mailfile

Parser für Standard Mailfiles, eventuell mit zusätzlichen Headern.

<mailfile>
  <senderheaders>
    <name>X-REAL-MAILFROM</name>
  </senderheaders>
  <recipientheaders>
    <name>X-REAL-RCPTTO</name>
  </recipientheaders>
  <secretheaders>
    <name>X-REAL-MAILFROM</name>
    <name>X-REAL-RCPTTO</name>
    <name>BCC</name>
  </secretheaders>
  <customhash>
    <name>From</name>
    <name>To</name>
    <name>Subject</name>
    <name>Date</name>
    <name>Message-Id</name>
  </customhash>                
</mailfile>

Die Zuordnung von Sender- und Empfängerdaten erfolgt innerhalb der Tags <senderheaders /> bzw. recipientheaders />.

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

bennomailfile

Parser für Bennomailfiles (Mit Envelope Informationenen im zusätzlichen Header und Checksumme)

<bennomailfile>
  <senderheaders>
    <name>X-REAL-MAILFROM</name>
  </senderheaders>
  <recipientheaders>
    <name>X-REAL-RCPTTO</name>
  </recipientheaders>
  <secretheaders>
    <name>X-REAL-MAILFROM</name>
    <name>X-REAL-RCPTTO</name>
    <name>BCC</name>
  </secretheaders>
</bennomailfile>

Parser-Header

  • senderheaders - Header, deren Inhalt als Envelopeabsender gilt
    • name - ein oder mehr Headernamen
  • recipientheaders - Header, deren Inhalt als Envelopeempfänger gilt.
    • name - ein oder mehr Headernamen
  • secretheaders - Header, die aus dem Kopf der abgelegten Mail entfernt werden.
    • name - ein oder mehr Headernamen

Die secretheaders werden vor der Indexierung und Archivierung aus der eigentlichen E-Mail entfernt.

luceneindex

<luceneindex version=“LUCENE_36“>
  <directory>/srv/mailarchive/default/index</directory>
  <indexTimeout>120</indexTimeout>
</luceneindex>
  • version - Lucene-Versionsnummer des Indexes
  • directory - Verzeichnis der Indexdateien
  • indexTimeout - (optional) Timeout für Rückmeldung vom Tokenizer (default: 120 Sekunden)

Boxgenerator

singlefsbox

VERALTET Wird in zukünftigen Versionen entfallen!

Eine einzelne Box wird konfiguriert und verwendet.

<singlefsbox>
  <fshexbennobox>
    <monthlyfsjournal/>
    <directory>/srv/benno/archive/repo</directory>
    <subdirs>3</subdirs>
    <dirlength>2</dirlength>
    <compression>gzip</compression>
    </fshexbennobox>
</singlefsbox>

yearlyfsbox

Konfiguration für jährliche Boxerstellung. Der Grundpfad wird in der Beispielkonfiguration der Box angegeben, für die echten Boxen wird jeweils eine Konfiguration mit dem erweiterten Pfad „…/2011/“ erstellt. Damit befinden sich die eigentlichen Boxen in Unterverzeichnissen des in der Beispielkonfiguration angegebenen Pfads.

<yearlyfsbox>
  <Box />
</yearlyfsbox>

fshexbennobox

Box in der die Nachrichten im Bennomailformat (Mail mit vorangestellten zusätzlichen Headern mit Envelope Informationen und Checksumme) abgelegt werden. Der Pfad wird aus der Hex Darstellung des Hashwertes generiert, pro Unterverzeichnisebene werden jeweils „dirlength“ Zeichen verwendet, es gibt „subdirs“ Unterverzeichnisebenen.

<fshexbennobox>
  <Journal /> // Journal dieser Box. Es wird im Unterverzeichnis „.../journal“ angelegt.
  <id>boxname</id> // Name der Box, wird bei generierten Boxen meist automatisch vergeben.
  <compression>none</compression> // Kompression der Mails in der Box.
                                                              // Unterstützt werden „none“ und „gzip“.                                                              
  <directory>/srv/mailarchive/box</directory> // Verzeichnis in dem die Box ihre Dateien ablegt
  <subdirs>3</subdirs> // Anzahl der Unterverzeichnisebenen bis zur Maildatei
  <dirlength>2</dirlength> // Anzahl der Zeichen, die eine Unterverzeichnisebene bilden
</fshexbennobox>

Dateiablage

Relativer Pfad: …/repo/2012/14/F9/66/4704AB5AA55D479A1EAFEB65FDCF58587DE609D316D08152AEE2B1DAC100.gz

E-Mail mit Metadaten
Sender: j.elixmann@hansen-und-meyer.de
Recipient: j.kohning@hansen-und-meyer.de
Size: 895
Date: 2012-06-21 09:01:08 UTC
===== Hash: 14F9664704AB5AA55D479A1EAFEB65FDCF58587DE609D316D08152AEE2B1DAC1
Message-ID: <4AC1H8JKNSKJKHKH787876E624.5000408@web.de>
Date: Thu, 21 Jun 2012 11:01:08 +0200
From: j.elixmann@hansen-und-meyer.de
User-Agent: Mozilla-Thunderbird 2.0.0.22 (X11/20090706)
MIME-Version: 1.0
To: j.kohning@hansen-und-meyer.de
Subject: Termin kommende Woche
Content-Type: text/plain; charset=ISO-8859-1; format=flowed
Content-Transfer-Encoding: 8bit
...

configuredcontainers

simplecontainer

Beispiel-Konfiguration

<benno management="2555">
<configuredarchives>
  <!-- ARCHIV1 -->
  <containerarchive>
    <identifier>LWsystems</identifier>
    <conditions><all /></conditions>
    <readonly>true</readonly>
    <directorywatcher directory="/srv/benno/inbox" pattern=".*\.eml">
      <!-- Parser der Eingangsdokumente (mailfile|bennomailfile) -->
      <mailfile>
        <senderheaders> <!-- Header, die den Sender-Envelope enthalten -->
          <name>X-REAL-MAILFROM</name>
          <name>RECIPIENT-FROM</name>
        </senderheaders>
        <recipientheaders> <!-- Header, die den Empfänger-Envelope enthalten -->
          <name>X-REAL-RCPTTO</name>
          <name>RECIPIENT-TO</name>
          <name>BCC</name>
        </recipientheaders>
        <secretheaders> <!-- Diese (Envelope-) Header werden aus dem Kopf der Mail entfernt -->
          <name>X-REAL-MAILFROM</name>
          <name>RECIPIENT-FROM</name>
          <name>X-REAL-RCPTTO</name>
          <name>RECIPIENT-TO</name>
          <name>BCC</name>
        </secretheaders>
      </mailfile>
    </directorywatcher>
    <!-- Container innerhalb des Archivs -->
    <configuredcontainers>
      <simplecontainer>
        <identifier>LWsystems</identifier>
        <conditions> <!-- welche Mails werden diesem Container zugeordnet -->
          <!-- Angabe, welche Kriterien (sender, recipient, ...) zur Zuordnung überprüft werden. -->
          <domain sender="true" recipient="true" from="true" to="true" cc="true">lw-systems.de</domain>
        </conditions>
        <readonly>true</readonly>
        <luceneindex version="LUCENE_33">
          <directory>/srv/benno/archives/lw-systems.de/index</directory>
        </luceneindex>
        <yearlyfsbox>
            <fshexbennobox>
                <monthlyfsjournal/>
                    <directory>/srv/benno/archives/lw-systems.de/repo</directory>
                    <subdirs>3</subdirs>
                    <dirlength>2</dirlength>
                    <compression>gzip</compression>
            </fshexbennobox>
        </yearlyfsbox>
      </simplecontainer>
    </configuredcontainers>
  </containerarchive>
</configuredarchives>
</benno>
benno.xml.txt · Zuletzt geändert: 2023/11/23 11:56 von lwsystems