Tobit 8 zu Dovecot migrieren

Seit vielen Jahren setzen wir Tobit Software für unsere E-Mails und Faxe ein. Fast genauso lange sind wir damit nicht mehr so zufrieden. Darum haben wir auch schon länger keine Updates gekauft und sind jetzt auf der Version 8 sitzen geblieben, die unter Windows 7 nicht mehr gut läuft. Faxe senden oder Mails ausdrucken funktioniert nicht mehr richtig. Tobit empfiehlt den Betroffenen, ein Upgrade zu erwerben. Weil Faxversand und -empfang im Zeitalter von E-Mails immer unwichtiger wird, brauchen wir eigentlich "nur" einen Mailserver.

Der Tobit Server stellt grundsätzlich IMAP-Funktionen zur Verfügung. Das nennt sich im Tobit-Sprech "Mail Access Server". Im DvISE Administrator kann man dieses System einrichten.

DvISE Administrator Einstellungen des Mail Access Servers
DvISE Administrator Einstellungen des Mail Access Servers

Faxe werden bei der oben dargestellten Einstellung automatisch als GIF-Datei im Anhang einer E-Mail zur Verfügung gestellt. Ordner werden als IMAP-Postfächer übertragen.

Alias Liste

Benutzer, die Zugriff per IMAP bekommen sollen, müssen zuerst in einer Alias-Liste eingetragen werden. Der Alias darf nicht dem Benutzernamen entsprechen.

Benutzer in Alias Liste eintragen
Benutzer in Alias Liste eintragen

Zugang am Client freigeben

Dann können die Benutzer im "Tobit David InfoCenter" über den Menüpunkt Optionen > Einstellungen einen Zugang enrichten. Wichtig: auf den Button "Übernehmen" klicken, damit alle Unterordner freigegeben werden.

Zugang für den Benutzer im InfoCenter einrichten
Zugang für den Benutzer im InfoCenter einrichten
Und nicht vergessen, auf Übernehmen zu klicken!
Und nicht vergessen, auf Übernehmen zu klicken!

Thunderbird einrichten

Nun kann man mit einem Standard-Mail-Client, wie dem Thunderbird den IMAP-Zugang einrichten. Thunderbird will behilflich sein und errät den Mail-Host. In unserem Fall Strato. Das muss man natürlich überstimmen und den Tobit Server eingeben. Der Benutzername ist der soeben vergebene Alias und das am Client eingestellte Passwort. Wenn man alles richtig gemacht hat, lädt Thunderbird die Mails und Ordner.

Leider verhält sich der Mail Access Server nur fast wie ein richtiger IMAP-Server. Mails werden manchmal unterschlagen, nicht gelöscht, etc. Manchmal stürzt der Mail Access Server auch komplett ab. Laut Tobit darf der das. Wem das nicht gefällt, der soll sich ein Update auf die aktuelle Version kaufen.

Dovecot IMAP auf Ubuntu

Weil wir hier sowieso einen Ubuntu Server haben, ist ein stabiler und freier IMAP-Server relativ schnell installiert. Hier gehe ich nicht ins Detail, Installationsanleitungen gibt es zu Hauf.

Migration per Drag-And-Drop

Um die Nachrichten von Tobit auf Dovecot zu übertragen, kann man beide Konten im Thunderbird anlegen und per Drag-And-Drop komplette Ordner von einem Konto ins andere ziehen.

Tobit tendiert dabei aber gern zu kleinen Abstürzen. Schöner wäre ein Skript, mit dem man das machen kann.

Migration per ImapCopy

Ich habe verschiedene Programme ausprobiert, die komplette IMAP-Konten übertragen sollen. Aber erst mit dem von Armin Diehl geschriebenen, freien Tool IMAPCopy ist es mir gelungen, Postfächer effizient zu übertragen.

Nach der Installation schreibt man die wichtigsten Informationen in die ImapCopy.cfg.

Out of the Box hat es leider nicht funktioniert, weil das von Tobit gesendete Datum nicht so formatiert war, wie dovecot es gern hätte. Um genau mitlesen zu können, kann man in der cfg-Datei die Hash-Zeichen vor den Zeilen 

 

DebugSrc

DebugDst

 

entfernen, um verbose die Kommunication mitlesen zu können. Dabei fällt folgender Fehler auf:

 

R:A0006 BAD Invalid internal date.\r\n

 

Das liegt daran, dass Tobit das Datum in folgendem Format abschickt.

 

R:* 1 FETCH (INTERNALDATE "30-Dec-05 15:49:39 UT")\r\n

 

Zuerst hatte ich geglaubt, dass das "UT" der Stein des Anstoßes ist. Eigentlicht heißt es ja "UTC". Weil der Entwickler das schon festgestellt hat, bietet die cfg-Datei sogar die Möglichkeit, den String umschreiben zu lassen, indem man eingibt:

 

converttimezone "UT" "+0100"

 

Das bringt leider auch noch nicht die Lösung. Der String wird zwar geändert, aber nicht wirklich repariert.

 

APPEND tobitimport.INBOX.old (\Seen) "30-Dec-05 15:49:39 U +0100" {1228}\r\n

 

Also habe ich mir den Quellcode geladen und mal reingeguckt. Da steht in Zeile 1364 der imaptools.pas:

 

OrgMsgDateTime := copy(OrgMsgDateTime,1,20)+' '+st;

 

Das Programm geht also davon aus, dass das "U" an Stelle 21 steht. Tatsächlich steht es zwei stellen weiter links, weil das Jahr nur zweistellig übertagen wird. Leider hat der Entwickler auf meine Mail nicht geantwortet. Zum letzten mal hatte ich mit Pascal in Klasse 9 oder 10 zu tun und das ist jetzt gute 20 Jahre her, aber für diese Zeile wird es noch reichen.

 

Um das Programm zu kompilieren benötige ich FreePascal. Das ist das Pakt fpc, das man leicht mit aptitude installieren kann. Das Compilieren scheitert aber wie folgt:

 

~/imapcopy$ ./Mkdistsrc
./Mkdistsrc: 7: ./Mkdistsrc: zip: not found
Compiling for Linux
Free Pascal Compiler version 2.4.4-3.1 [2012/01/04] for x86_64
Copyright (c) 1993-2010 by Florian Klaempfl
Target OS: Linux for x86-64
Compiling imapcopy.pp
Compiling imapcopymain.pas
Compiling imaptools.pas
Compiling inet.pp
Compiling logfile.pas
imaptools.pas(238,8) Warning: Symbol "family" is deprecated
imaptools.pas(239,8) Warning: Symbol "port" is deprecated
imaptools.pas(241,8) Warning: Symbol "addr" is deprecated
imaptools.pas(242,20) Error: Identifier not found "Socket"
imaptools.pas(243,10) Error: Wrong number of parameters specified for call to "Connect"
imaptools.pas(421,24) Error: Identifier not found "Recv"
imaptools.pas(524,48) Error: Identifier not found "send"
imaptools.pas(1671) Fatal: There were 4 errors compiling module, stopping
Fatal: Compilation aborted
Error: /usr/bin/ppcx64 returned an error exitcode (normal if you did not specify a source file to be compiled)

 

Den Fehler haben schlaue Leute schon vor mir entdeckt und repariert. Eine funktionierende Version bekommt man mit:

git clone git://anonscm.debian.org/collab-maint/imapcopy.git

 

Wenn man die Zeile 1364 in imaptools.pas wie folgt ändert:

 

OrgMsgDateTime := copy(OrgMsgDateTime,1,7)+'20'+copy(OrgMsgDateTime,8,18)+' +0100';

 

und anschließend mit ./Mkdistsrc kompiliert, erhält man eine binary, die das Datum mit vierstelligem Jahr umschreibt, so dass dovecot es annimmt. Ich habe keine Mails aus dem vorherigen Jahrhundert im Tobit, also reicht es mir, die 20 einzufügen. (in der ImapCopy.cf muss übrigens ein Eintrag converttimezone "UT" "+0100" stehen bleiben.)

 

Dieser Hack ist viel zu häßlich für ein git-push. Vielleicht hat aber jemand anders Interesse daran, diese Zeile zu verbessern.

Interne Folder ausschließen

Tobit stellt auch Ordner wie "Kalender", "System", oder "Adressen" als IMAP zur Verfügung. Man kann in der ImapCopy.cfg zwar die zu kopierenden mit copyfolder festlegen. Aber das geht nicht rekursiv. Und wenn man jeden Unterordner einzeln auflisten muss, bringt das ganze Tool nichts.

 

Es gibt aber die nicht dokumentierte Einstellung "skipmatch". Der Eintrag 

 

skipmatch System

 

Sorgt dafür, dass Ordner oder Pfade, in denen mit der Name "System" enthalten ist, nicht kopiert werden.

./imapcopy

Jetzt kann man das Skript in aller Ruhe laufen lassen. Wer vorher das Standard-Pakt imapcopy installiert hat, muss aufpassen, dass er seine selbst kompilierte binary-datei startet. Also schön mit explizitem Pfad ./imapcopy aufrufen. Ansonsten wird die Version /usr/bin/imapcopy ausgeführt.

Leidensgenossen gesucht

Wer diesen Artikel bis hierhin gelsen hat, wird meinen Schmerz mit Tobit teilen. Ich würde mich sehr freuen, Leidensgenossen zu finden, die ihre Erfahrung mit Umstieg mit mit teilen und freue mich auf Kommentare.

Write a comment

Comments: 3
  • #1

    Nick (Sunday, 03 August 2014 08:00)

    Besonders teile ich Deinen Satz:
    "Seit vielen Jahren setzen wir Tobit Software für unsere E-Mails und Faxe ein. Fast genauso lange sind wir damit nicht mehr so zufrieden."
    Mir steht das ganze noch bevor und suche z.Zt. nach Wegen die Mailboxen zu übernehmen.
    ich habe durchaus noch Mails aus dem letzten Jahrtausend und meine Pascal-Seminare liegen noch länger zurück :-)
    Vielen Dank für die Anregungen und auch die Fehlerbeschreibung. In den nächsten Monaten werde ich mich darum kömmern müssen :-((
    Herzlichen Dank!

  • #2

    Georg (Saturday, 27 February 2016 16:31)

    Hallo zusammen:
    Also wir haben auch eine uralte Tobit David Installation XL und dürfen nun auch den steinigen Weg gehen diesen auf einen anderen Server umzustellen.
    Dazu vielen Dank für die Tipps und die Anregungen.

    Mal sehen auf welches Produkt wir dann zum Schluß kommen.
    Auf jeden Fall keine "Windows" Produkt mehr, da einem die unendliche Updaterei, neue Rechner Installierei doch ganz schön von der eigentlichen Arbeit abhält.
    Wir schauen uns mal Elastik, Zimbra oder Zaraffa an.
    Auf jeden Fall gehts in die Open World mit Linux und Konsorten.

    Nochmal Danke für das Tutorial!

    VG Georg

  • #3

    Torben (Thursday, 18 May 2017 12:56)

    Ich habe auch diverse Davids im Einsatz und darf nun endlich den Stecker ziehen. Die Migration ist echte Fleißarbeit. Ich habe (mit Unterbrechungen) für die 16.000 Buchhaltungs Mails 2 Wochen gebraucht.

    Auf jeden Fall hat dieser Artikel sehr geholfen, den Umzug unser David 8 Installation durchzuführen. Dessen Mail Access Server verhält sich leider nämlich zickiger als der in David 10.

    Wir wechseln zu Kolab, falls das jemanden interessiert.