Aus gegebenem Anlass habe ich mich damit beschäftigt, Mails aus dem Tobit InfoCenter als Backupmöglichkeit sowohl ins UNIX Mbox-Format zu konvertieren als auch in den Cyrus-IMAP-Server zu importieren.
Tobit InfoCenter bzw. der Serverteil legt jede Mail einzeln als .0tx-Datei in einem Ordnersystem ab, wobei ein Ordner im Dateisystem auch einem Mailordner entspricht. Die .0tx-Dateien enthalten neben einem Standard-Mail-Header noch eine Kopie davon und einige binäre Daten am Anfang der Datei, die ich mir aus urheberrechtlichen Gründen nicht näher angesehen habe.
Wenn man die doppelten Header sowie die Binärdaten also entfernt, hat man eine nach entsprechendem RFC gültige Mail. Mit einer Mbox From_-Zeile davor wird sie also gültiger Teil einer Mbox-Datei.
Diese Mail lässt sich dann auch manuell in den Cyrus-Spool importieren und mit einem Reconstruct der Cyrus-Datenbank vollständig ins System einbinden.
Zu diesem Zweck findet sich in meinem SVN-Repository ein Perl-Script, das direkt auf dem Cyrus-Server (unter Linux!) ausgeführt wird und einen kompletten Tobit-Mailordner konvertiert. Angenommen wir befinden uns in einem Tobit-Ordner und möchten alle Mails in die INBOX des Benutzers foo kopieren und Cyrus hat sein Spoolverzeichnis in /var/spool/cyrus/mail, so lautet ein Beispielaufruf:
$ ./tobit-mbox.pl –cyrus –no-mbox –cyruser=cyrus –cyrdir=/var/spool/cyrus/mail/f/user/foo –cyrbox=user.foo
Dabei wird übrigens davon ausgegangen, dass der Cyrus-Admin-User cyrus heißt und dasss sich die Cyrus-Binaries in /usr/lib/cyrus/bin befinden. Entsprechende Parameter zur Beeinflussung dieser Variablen werden mit dem Befehl
$ ./tobit-mbox.pl –help
aufgelistet.
ACHTUNG: Die Benutzung dieses Scripts verstößt mit ziemlicher Sicherheit gegen geltende Gesetze. Das Skript wurde von mir zu Lernzwecken entwickelt, der Benutzer ist selbst zu 100% verantwortlich!
Ein kleines Perl-Script zum importieren von Mails aus dem Tobit InfoCenter in Cyrus