После того, как электронные письма, подлежащие импорту, будут скопированы во входящие сообщения Benno MailArchiv, как здесь , они считываются демоном архива Benno. Это включает в себя анализ заголовков и вычисление контрольной суммы электронного письма. Затем контрольная сумма используется для определения имени файла, под которым будет сохранено электронное письмо.
Теперь электронное письмо хранится в каталоге репозитория по адресу /srv/benno/archive/boxname . В стандартной установке имя ящика всегда соответствует текущему году.
После успешного сохранения письма в хранилище оно будет удалено из папки «Входящие».
Falls es bei der Verarbeitung einer E-Mail zu einem Fehler kommt, wird dieser intern abgefangen und im Log vermerkt. Die zu importierende E-Mail in der Inbox wird unbenannnt und bekommt die Endung .err. Eine zu importierende E-Mail wird direkt nach dem Einlesen im Repository gespeichert. Daher ist eine fehlerhafte E-Mail in der Regel schon im Repository gespeichert, wenn der Fehler festgestellt wird. Aus Sicherheitsgründen kann Benno MailArchiv keine E-Mail aus dem Repository löschen, so dass die E-Mail im Fehlerfall in der Regel zweifach vorhanden ist.
Nachdem die E-Mail im Repository abgelegt wurde, wird der durchsuchbare Text aus der E-Mail und den Anhängen extrahiert. Diese Analyse wird mit Hilfe der Apache Bibliothek Tika durchgeführt. Tika bietet ausschließlich eine high-Level Schnittstelle zur Analyse von E-Mail an. Die gesamte E-Mail wird über die Schnittstelle an Tika übergeben. Tika liefert dann einen Token-Strom, der in Apache Lucene indexiert wird. Im Falle von fehlerhaften Anhängen in der E-Mail bricht Apache Tika die Text-Extraktion insgesamt ab und gibt einen Fehler zurück. Benno MailArchiv erkennt das Problem und benennt die E-Mail in der Inbox nach .err um, so dass die E-Mail auf keinen Fall verloren geht und das Problem auffällig dokumentiert ist.
Начиная с версии 2.1.0 Benno MailArchiv, интеграция с Apache Tika стала более надежной. Теперь, прежде чем Apache Tika начнет анализ электронного письма, оно разбивается на компоненты (тело письма и отдельные вложения). Затем эти части анализируются Apache Tika по отдельности. Если обнаруживается некорректное вложение, это записывается в файл журнала, и следующее вложение индексируется. Это гарантирует, что индексируется максимально возможная часть электронного письма, что делает его доступным для поиска.
Начиная с версии Benno MailArchiv 2.1.6, ошибочные электронные письма можно повторно импортировать, просто переместив их обратно в папку «Входящие». В процессе импорта архиватор проверяет, существует ли контрольная сумма уже в репозитории. Если да, то соответствующая запись в индексе заменяется новыми импортированными данными.
Если расширение файла будет изменено на .eml, электронные письма будут импортированы повторно.
Для тестирования или других особых случаев поведение импорта можно настроить таким образом, чтобы файлы электронной почты не удалялись или удалялись только после успешного архивирования из папки «Входящие».
Dieser Modus wird mit Hilfe des Kommandozeilenschalters -d bzw. --delete des Benno Archive Daemons aktiviert.
| режим | Описание | Поведение в случае успеха | Поведение в случае ошибок |
|---|---|---|---|
| ВСЕ | Стандартный режим. Удаляет все успешно "завершенные" процессы. | Файл будет удалён. | Файл останется в формате .prc (он больше не будет обрабатываться). |
| НАЗНАЧЕННЫЙ | Удаляет только те электронные письма, которые действительно были заархивированы. | Файл будет удалён. | Файл будет переименован в .kep. |
| НИКОГДА | Файлы никогда не удаляются. | Файл будет переименован в .kep. | Файл будет переименован в .kep. |
Примечание относительно ошибок: независимо от выбранного режима, файлы, в которых во время анализа или архивирования возникла техническая ошибка, всегда будут переименованы в .err для последующего анализа.
Базовая конфигурация запуска демона Benno Archive Daemon управляется через файл /etc/default/benno-archive . Параметр DAEMON_ARGS соответственно расширяется.
START_ARCHIVE=yes JAVA_OPTIONS=' -server ' DAEMON_ADDRESS='127.0.0.1' DAEMON_PORT='2555' #DAEMON_ARGS='-c /etc/benno/benno.xml' DAEMON_ARGS='-c /etc/benno/benno.xml --delete NEVER' USER=benno