Это старая версия документа!
Легко масштабируемая архитектура Benno MailArchiv обеспечивает простую интеграцию подсистем Benno MailArchiv с компонентами сторонних производителей.
Ниже представлен концептуальный пример, описывающий практическую реализацию интеграции Benno MailArchiv в существующую хостинговую инфраструктуру. Описаны следующие конфигурации.
Die Beispiele erläutern mit einfach nachvollziehbaren Shell-Skripten und einfachen Textdateien als Ersatz für an dieser Stelle typischerweise eingesetzte Datenbanken (oder Directory-Systeme usw.) die Anbindung an die jeweiligen Backend-Systeme eines Hosters.
Aus den hier dargelegten Skripten und „Beispiel-Datenbanken“ kann eine Integration in die eigenen Hosting-Systeme schnell abgeleitet und in einer beliebigen Programmiersprache der eigenen Wahl implementiert werden.
In dem in diesem Proof of Concept (PoC) verwendeten fiktiven Backend-System (Provisioning-Datenbank) unseres fiktiven Hosters werden die Daten (Benutzername, Passwort, Mailadresse(n), usw.) exemplarisch in der SQLite-Datenbank provisioning.sqlite gespeichert. Die Provisioning-Datenbank ist hier beispielhaft mit vier Tabellen abgebildet.
Weder Login-Namen, Mailadressen noch Aliasadressen des Kunden sind in diesem fiktiven Szenario den Kunden-Mailboxen fest zugeordnet, wie dies in der Praxis häufig der Fall ist. In diesem Beispiel-Setup können E-Mail-Adressen und Aliase des Kunden daher jederzeit flexibel zwischen den Konten des Kunden hin und her verschoben werden. Das nachfolgende Datenbankschema ist daher etwas umfangreicher, als bei einem einfachen Setup, wo E-Mail-Adresse (+ Alias-Adressen) = Mailbox ist.
Alle ein- und ausgehenden E-Mails werden über ein (oder mehrere) Mail-Gateways (MTAs) geroutet. Auf diesen ist ein benno-milter konfiguriert, der von jeder E-Mail eine Kopie zwischenspeichert.
Die zwischengespeicherten E-Mails werden von dort per SMTP an den auf dem Benno MailArchiv-Server laufenden benno-smtp Daemon übermittelt. Die lokale Kopie der Mail auf dem MTA wird nach Übergabe an Benno MailArchiv gelöscht.
Falls ein Kunde das Produkt Benno MailArchiv im Online-Portal des Hosters per Mausklick bucht, wird diese Auswahl in der Datenbank des Provisioning-Systems des Hosters eingetragen und anschließend die Aktualisierung der Benno MailArchiv Konfiguration getriggert. Die Konfigurationsdatei benno.xml, in der die zu archivierenden Mandanten konfiguriert sind, wird dabei von benno-writeconfig.sh automatisch aus der Datenbank heraus erstellt (generiert). Anschließend wird die Konfiguration der Benno-Dienste neu geladen, so dass die um den neuen Kunden ergänzte Konfiguration aktiviert wird.
#!/bin/sh # # benno-writeconfig.sh ( cat xml_header.tpl sqlite provisioning.sqlite \ 'SELECT c.displayname,m.maildomain FROM customer AS c, maildomain AS m WHERE c.customer_id=m.customer_id;' |\ while read -d\| domain customer; do cat xml_container.tpl |sed -e "s/###CUSTOMER###/ $customer/g" -e "s/###DOMAIN###/$domain/"; done cat xml_footer.tpl ) > /etc/benno/benno.xml service benno-archive reload service benno-rest reload
Das obige Skript benno-writeconfig.sh generiert die Konfigurationsdatei benno.xml automatisch aus den Template-Dateien xml_header.tpl, xml_container.tpl, xml_footer.tpl. Im Container-Template wird der Name des Kunden sowie die Domain(s), die in diesem Container archiviert werden sollen, eingesetzt.
Danach wird die Konfiguration der Dienste benno-archive und benno-rest neu geladen. Die neue Konfiguration ist damit in Benno MailArchiv aktiv.
Копии электронных писем сохраняются системой MILTER на почтовом шлюзе (MTA) в каталоге /milter/spool/dir .
Задание cron milter2smtp считывает файлы .eml. Используя значение X-REAL-RCPTTO , определяется соответствие почтовых ящиков на основе базы данных инициализации.
В приведенном примере запроса к псевдониму info@hansen-und-meyer.de идентификатор почтового ящика " m3 ". Эта информация добавляется в электронное письмо в качестве дополнительного заголовка перед его передачей в benno-smtp . Это гарантирует, что привязка каждого письма к почтовому ящику получателя будет зафиксирована в индексе и архиве в момент доставки.
При аутентификации в веб-интерфейсе Benno MailArchiv пользователю, назначенному почтовому ящику m3 адрес электронной почты m3@benno-mailarchiv.local в качестве действительного адреса. Это позволяет ему получить доступ к электронной почте, импортированной выше.
X-Benno-MAILBOXID, который вставляется в электронное письмо для целей архивирования, удаляется программой Benno MailArchiv при просмотре или загрузке письма .