SMTP| | +----v-------+ | | | МИЛТЕР | MAILGW1 | +--------+ +------------------+ | | | | | | | +----v-------+ | | |КЛИЕНТ1| | | | | | | +------->| БЕННО |--------| | | | | | +----v-------+ | | |КЛИЕНТ2| | | | | | | | | MAILGW2 | +--------+ +------------------+ | | | МИЛТЕР +------------+
Если электронные письма импортируются из нескольких разных систем, существует риск того, что одно и то же письмо будет импортировано несколько раз или некорректно.
В этом примере на системе Benno настроены два клиента. Каждый клиент настроен таким образом, что все электронные письма, отправляемые на его домен и получаемые с него, архивируются в Benno.
У каждого клиента есть свой почтовый шлюз, через который он получает и отправляет электронные письма. Соединение Бенно устанавливается через MILTER на обоих почтовых шлюзах.
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.
Другая проблема возникает, если, например, электронное письмо принимается MAILGW1, но пересылка на MAILGW2 не удается. В этом случае необходимо убедиться, что электронное письмо было импортировано только Client1, но не Client2.
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.
При переносе данных из исходной системы в интерфейс импорта Benno MailArchiv предоставляется возможность установки заголовка X-BENNO-GW. Например, MAILGW1 или MAILGW2. В зависимости от используемого инструмента импорта заголовок может быть настроен соответствующим образом.
Демон MILTER устанавливает заголовок в значение, указанное в конфигурационном файле /etc/default/benno-milter.
MILTERARGS="-x CANDANT1"
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.
Hier kann der Paramameter ebenfalls als -x MANDANT1 per Kommandozeile übergeben, oder in der Konfigurationsdatei mit dem Parameter extraheader_value = MANDANT1 festgelegt werden.
Инструмент benno-imapimport устанавливает заголовок с помощью параметра -x MANDANT1 или в конфигурационном файле extraheader = X-BENNO-GW: MANDANT1.
Im „“ 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>
Значение X-BENNO-GW может быть указано в качестве дополнительного или исключающего критерия для назначения контейнера контейнеру в критериях контейнера.
Если источник импорта (MILTER, benno-exchange) импортирует только одного клиента, достаточно указать заголовок X-BENNO-GW для назначения. Если впоследствии клиенту будут назначены дополнительные домены, изменять конфигурацию здесь не потребуется.
<simplecontainer> <identifier>Mandant1</identifier> <conditions> <domain sender="true">MAILGW1</domain> </conditions> ...
В этом случае необходимо учитывать значение X-BENNO-GW и домен клиента.
<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> ...