Inhaltsverzeichnis

Multi-Import

      SMTP|   
          |
     +----v-------+
     |         |  | MILTER
     | MAILGW1 |  +--------+        +------------------+
     |         |  |        |        |         |        |
     +----v-------+        |        |         |MANDANT1|    
          |                |        |         |        |
          |                +------->|  BENNO  |--------|
          |                |        |         |        |
     +----v-------+        |        |         |MANDANT2|
     |         |  |        |        |         |        |
     | MAILGW2 |  +--------+        +------------------+
     |         |  | MILTER
     +------------+

Doppelter Import

Falls die E-Mails aus mehreren unterschiedlichen Quellsystemen importiert werden, besteht die Gefahr, daß eine E-Mail mehrfach oder fälschlicherweise importiert wird.

Im Beispiel sind zwei Mandanten auf dem Benno System konfiguriert. Jeder Mandant ist so konfiguriert, daß alle E-Mails von oder an seine Domain in Benno archiviert werden.

Jeder Mandant hat ein eigenes Mailgateway, über das er seine E-Mails empfängt und verschickt. Die Anbindung von Benno erfolgt mittels MILTER auf den beiden Mailgateways.

Falls Mandant1 eine E-Mail an Mandant2 schickt, läuft diese über beide Mailgateways und wird von beiden MILTERn an Benno MailArchiv übertragen. Beim Versand von MAILGW1 an MAILGW2 wurden der Mail dabei von den SMTP-Servern zusätzliche Header hinzugefügt, so daß sich die Checksummen der E-Mails unterscheiden. Die Mail wird folglich in jedem der beiden Mandanten doppelt importiert.

Fälschlicher Import

Ein anderes Problem tritt auf, falls die E-Mail z.B. von MAILGW1 angenommen, aber der Weiterversand an MAILGW2 fehlgeschlagen ist. Hier muss sichergestellt werden, daß die E-Mail ausschließlich bei Mandant1, aber nicht bei Mandant2 importiert wurde.

Konfiguration

Die oben beschriebenen Probleme beim Setup mit mehreren Import-Quellen wird vermieden, wenn der zu importierenden E-Mail die Information über das Quellsystem mitgegeben wird und dieses als Import-Kriterium in der Container-Konfiguration (und damit beim Mandanten) festgelegt wird.

Import

Die Übertragung vom Quellsystem zur Import-Schnittstelle von Benno MailArchiv bietet die Möglichkeit, den Header X-BENNO-GW zu setzen. Im Beispiel z.B MAILGW1 oder MAILGW2. Je nach Import-Tool kann der Header dementsprechend konfiguriert werden.

MILTER

Der MILTER Daemon setzt den Header auf den Wert, der in der Konfigurationsdatei /etc/default/benno-milter

MILTERARGS="-x MANDANT1"

Alternativ ist eine Konfiguration bei der Übertragung der Mails per SMTP mit benno-milter2smtp möglich. Hier wird der Kommandozeilenparameter -x MANDANT1 im Cron-Job gesetzt.

benno-exchange

Hier kann der Paramameter ebenfalls als -x MANDANT1 per Kommandozeile übergeben, oder in der Konfigurationsdatei mit dem Parameter extraheader_value = MANDANT1 festgelegt werden.

benno-imap

Das Tool benno-imapimport setzt den Header mit -x MANDANT1 oder in der Konfigurationsdatei extraheader = X-BENNO-GW: MANDANT1.

benno.xml

directorywatcher

Im „<directorywatcher />“ wird der Header X-BENNO-GW in <senderheaders /> und in <secretheaders /> aufgeführt. Damit wird der Wert dieses Headers in der Container-Konfiguration als Kriterium für „sender“ betrachtet. Die Einstufung als Secretheader bewirkt, daß der Header nicht in der E-Mail angezeigt wird.

        <directorywatcher directory="/srv/benno/inboxes/mx1" pattern=".*.eml">
            <mailfile>
               <senderheaders>
                  <name>X-REAL-MAILFROM</name>
                  <name>X-BENNO-GW</name>
                  <name>From</name>
               </senderheaders>
               <recipientheaders>
                  <name>X-REAL-RCPTTO</name>
                  <name>BCC</name>
                  <name>To</name>
                  <name>Cc</name>
               </recipientheaders>
               <secretheaders>
                  <name>X-REAL-MAILFROM</name>
                  <name>X-REAL-RCPTTO</name>
                  <name>X-BENNO-GW</name>
                  <name>BCC</name>
               </secretheaders>
            </mailfile>

container

In den Kriterum für den Container kann der Wert von X-BENNO-GW als zusätzliches oder ausschließliches Kriterium für die Zuordnung zum Container angegeben werden.

Importquelle für einen Mandanten

Falls die Importquelle (MILTER, benno-exchange) nur einen einzelnen Mandanten importiert reicht hier die Angabe des X-BENNO-GW Headers zur Zuordnung. Wenn dem Mandanten später weitere Domains zugeordnete werden, muss die Konfiguration hier nicht geändert werden.

<simplecontainer>
  <identifier>Mandant1</identifier>
  <conditions>
    <domain sender="true">MAILGW1</domain>
  </conditions>
  ...

Importquelle für mehrere Mandanten

In diesem Fall muss der Wert von X-BENNO-GW und die Domain des Mandanten berücksichtigt werden.

<simplecontainer>
  <identifier>Mandant1</identifier>
  <conditions>
    <and>
      <domain sender="true">MAILGW2</domain>
      <or>
        <domain sender="true" recipient="true" from="true" to="true" cc="true">mandant2.de</domain>
        <domain sender="true" recipient="true" from="true" to="true" cc="true">mandant2.com</domain>
      </or>
    </and>
  </conditions>
  ...