Это старая версия документа!
Легко масштабируемая архитектура Benno MailArchiv обеспечивает простую интеграцию подсистем Benno MailArchiv с компонентами сторонних производителей.
Ниже представлен концептуальный пример, описывающий практическую реализацию интеграции Benno MailArchiv в существующую хостинговую инфраструктуру. Описаны следующие конфигурации.
В примерах объясняется подключение к соответствующим внутренним системам хостинг-провайдера с использованием простых и понятных скриптов командной оболочки и текстовых файлов в качестве замены обычно используемых здесь баз данных.
Представленные здесь скрипты и «примеры баз данных» позволяют быстро интегрировать их в ваши собственные хостинговые системы и реализовать на любом языке программирования по вашему выбору.
В этом концептуальном исследовании (PoC) используется вымышленная серверная система, которая хранит данные в базе данных SQLite, provisioning.sqlite . База данных показана здесь в качестве примера с четырьмя таблицами.
Все входящие и исходящие электронные письма проходят через почтовый шлюз (MTA). benno-milter , который временно хранит копию каждого электронного письма.
Die zwischengespeicherten E-Mails werden 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 bucht, wird die Option in der Datenbank des Provisioning-Systems des Hosters eingetragen und anschließend die Aktualisierung der Benno MailArchiv Konfiguration getriggert. Die Konfigurationsdatei benno.xml wird dabei von benno-writeconfig.sh automatisch aus der Datenbank heraus erstellt (generiert). Anschließend wird die Konfiguration der Benno-Dienste neu geladen.
#!/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
Скрипт benno-writeconfig.sh создает файл benno.xml на основе файлов шаблонов xml_header.tpl , xml_container.tpl и xml_footer.tpl . Шаблон контейнера содержит имя клиента и домен(ы), которые должны быть заархивированы в этом контейнере.
конфигурация сервисов benno-archive и benno-rest .
Копии электронных писем сохраняются системой 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 при просмотре или загрузке письма .