Wird eine schon archivierte E-Mail erneut importiert, wird dieses mit Hilfe der Duplikatserkennung festgestellt. In diesem Fall wird die Mail nicht erneut archiviert. Auch wird die archivierte Mail nicht verändert. Die zu importierende E-Mail wird stattdessen mit Hilfe des Tokenizers analysiert und neu indexiert; Der Index-Eintrag der betreffenden E-Mail wird gelöscht und durch die aktualisierten Index-Daten der E-Mail ersetzt.
Dieses Vorgehen kann beispielsweise eingesetzt werden, wenn der Tokenizer ein vorher nicht bekanntes Dateiformat (Attachmenttyp) unterstützt. Die Inhalte von Anhängen, die auf Grund unbekannter Dateiformate nicht indexiert werden konnten, können so einfach erneut indexiert werden, so dass Mails mit diesen Anhängen besser gefunden werden können.
(Hinweis: Der Tokenizer unterstützt Stand Ende 2017 ca. 1.300 unterschiedliche Dateiformate).
Zur Re-Indexierung eines Containers müssen alle E-Mails einmal neu gelesen und indexiert werden.
Um einen Container komplett zu re-indexen, ist es erforderlich, alle E-Mails aus dem Repository erneut zu importieren. Für den Re-Import werden die E-Mails aus dem Repository in das Inbox-Verzeichnis übertragen.
Im Repository-Verzeichnis liegen die E-Mails als gezippte Dateien in einem erweiterten RFC822-Format. Die Dateien im Archiv enthalten einen speziellen, Benno MailArchiv-spezifischen Header mit internen Metainformationen, sowie die eigentliche E-Mail.
Für den Re-Index muss zuerst der Benno-spezifische Header entfernt werden. Die Mail ist dann wieder dem Original entsprechend. Danach muss die E-Mail "atomar" in die Inbox geschrieben werden.
Der Re-Imports stellen kann mit dem Programm benno-bennobox2eml
aus dem Paket benno-import-tools durchgeführt werden. Dieses durchsucht das Repo-Verzeichnis nach den Archivdateien, extrahiert die Header und schreibt die E-Mails atomar in das Inbox-Verzeichnis.
Das Programm ist im Paket benno-import-tools enthalten.
Usage: /usr/sbin/benno-bennobox2eml [-h] [-d] [-v] [-m <num>] -a <archive directory> [-e <export directory] -a archive (repo) directory -b boxstate file (default $archive_dir/boxstate.xml) -e export files to directory (default current archive directory) -d dry run -s skip defective marked mails -m <num> max files in inbox directory -v verbose -V print version
Beispiel-Aufruf:
sudo -u benno benno-bennobox2eml -a /srv/benno/archive/repo -e /srv/benno/inbox