Benno IMAP (benno-imap) ist für die Synchronisation der E-Mails aus IMAP Mailboxen vorgesehen. Hierbei werden die E-Mails in regelmäßigen Abständen vom IMAP-Server in das MailArchiv importiert.
Zum einmaligen Import bestehender E-Mail Bestände sollte er Import per POP3 (mittels benno-pop3) oder IMAP (mittels benno-imapimport) durchgeführt werden.
Die Anbindung an das E-Mail System sollte möglichst direkt über die hiefür vorgesehenen Schnittstellen erfolgen.
Die Anbindung per IMAP sollte nur dann konfguriert werden, falls keine direkte Anbindung möglich ist. Hier besteht systembedingt die Gefahr, daß E-Mails auf dem IMAP-Server gelöscht werden, bevor sie archiviert wurden.
Die für diese Funktionalität benötigten Software-Komponenten werden mit Hilfe des Pakets benno-imap installiert.
Bei Nutzung einer MySQL Datenbank werden zusätzlich die Pakete python-mysqldb und php-mysql
benötigt.
Darüber hinaus muss in der MySQL Datenbank noch die Relation imapuser angelegt werden, sowie die Konfiguration in /etc/benno-imap/imapauth.conf
bzw. /etc/benno-imap/imapsync.conf
angepasst werden.
Die IMAP Passwörter werden reversibel verschlüsselt in der Datenbank
gespeichert. Das Schlüsselpaar wird bei der Installation automatisch angelegt und in den Dateien /etc/benno-imap/benno-imap.pub
und /etc/benno-imap/benno-imap.sec
gespeichert.
Die Schlüssel können auch nachträglich erstellt werden.
Der private Schlüssel wird in der Konfigurationsdatei von benno-imapsync (/etc/benno-imap/imapsync.conf
) festgelegt.
ACHTUNG! Der private Schlüssel sollte möglichst nicht auf Systemen gespeichert werden, die direkt aus dem Internet erreichbar sind. In diesem Fall sollte der Parameter keyfile auskommentiert werden.
In einem solchen Fall erwartete benno-imapsync
den privaten Schlüssel als Datenstrom auf STDIN. Ein solches Setup ermöglicht die Übergabe des Schlüssels per PIPE von einem anderen Host aus einer gesicherten Umgebung.
Die Authentisierung erfolgt gegen den IMAP-Server des Benutzers mit Hilfe des externen Authentisierungs-Moduls benno_imapauth.
Die Aktivierung des Authentisierungs-Moduls erfolgt, indem es perl Symlink in den Authentisierungs-Stack aufgenommen wird.
ln -s /usr/lib/benno-imap/benno_imapauth /etc/benno-web/auth.d/60_benno_imapauth
Die Konfiguration für das Authentisierungs-Modul benno_imap ist in
der Datei /etc/benno-imap/imapauth.conf
gespeichert. Diese Datei ist im
INI-Format ausgeführt (https://de.wikipedia.org/wiki/Initialisierungsdatei) und muss für
den User des Webservers lesbar sein.
Nach erfolgreicher Authentisierung gegen den IMAP-Server wird das Passwort mit dem Public-Key verschlüsselt und in der internen Datenbank gespeichert.
Ein neuer Benutzer wird mit dem Program benno-imapuser angelegt, falls das Programm mit -u <username> -i <imaphost> -C <container> aufgerufen wird. Das Programm kann unterschiedliche IMAP-Server abfragen, so daß die Möglichkeit besteht daß ein Username auf mehreren Server vorkommen kann. Daher wird ein Benutzer durch den „<username>“ und den „<imaphost>“ eindeutig identifizert werden kann.
Nicht übergebenen Parameter werden mit den Defaultparametern der Konfigurationsdatei vorbelegt.
benno-imapuser -u benno@lw-systems.net -i imap.lw-systems.net -C BennoContainer \ -n 'Benno LWsystems' -e benno@lw-systems.net,info@lw-systems.net
Das Passwort wird nach jeder erfolgreicher Anmeldung am Benno MailArchiv Web-Interface in der Datenbank gespeichert. Alternativ kann es direkt beim Anlegen des Benutzers mit dem Parameter -p angegeben werden.
Mit benno-imapuser -D -u <username> -i <imaphost>
wird der Benutzer aus der Datenbank
gelöscht. Damit wird auch keine Synchronisation des IMAP Kontos mehr
vorgenommen. Es sind beide Angaben notwendig, da ein IMAP-User nur so eindeutig identifiziert werden kann.
Die Ausgabe von benno-imapuser -l
gibt zeilenweise die Benutzer und IMAP-Host Parameter aus, so ggfs. direkt kopiert und eingefügt werden können.
Falls das Passwort eines Benutzers auf dem IMAP-Server geändert wird, muss sich der Benutzer einmal mit diesem Passwort am Web-Interface anmelden. Dann wird das neue Passwort in der Datenbank gespeichert und die E-Mails können vom IMAP-Server importiert werden.
Alternativ kann das Passwort mit dem Kommando benno-imapuser -u <username> -p <password>
geändert werden.
Der Import von neuen E-Mails erfolgt mit dem Programm benno-imapsync. Die Konfiguration erfolgt in der mit dem Parameter -c übergebenen Datei (/etc/benno-imap/imapsync.conf). Hier können Beispielsweise Ordner wie Drafts von der Synchronisation ausgeschlossen werden.
Die zu importierenden Accounts werden aus der Tabelle „imapuser“ gelesen. Das Passwort wird mit dem privaten Schlüssel (imapsync.conf: keyfile = …) entschlüsselt.
Falls hier die Meldung „RSA key format is not supported“ ausgegeben wird, wurde versehentlich ein RSA-Key statt des 3DES Keys erstellt / konfiguriert.
Für die regelmäßige Abholung wird der Cron-Job in der Datei /etc/cron.d/benno-imap
durch Entfernen des Kommentarzeichens zu Beginn der Zeile mit dem Kommandoaufruf aktiviert.
# # Start IMAP import every 15 minutes # #*/15 * * * * benno [ -x /usr/sbin/benno-imapsync ] && /usr/sbin/benno-imapsync -c /etc/benno-imap/imapsync.conf -f /var/log/benno/imapsync.log