Mails zwischen IMAP Servern umkopieren

Ich habe am Wochenende meine Domains vom eigenen Server (dbmail) zu all-inkl umgezogen und hatte beim umkopieren der Mails etliche Probleme. Der Spaß war deutlich zeitintensiver als erwartet, daher hier mal kurz die Liste der Probleme und Lösungen.

Das Hauptproblem war dass all-inkl (so wie nahezu alle IMAP Server) nur Ordner erlaubt die entweder Unterordner oder Mails enthalten aber nicht beides gleichzeitig. Thunderbird zeigt Ordner die nur Unterordner enthalten dürfen kursiv an. Ich hatte bei mir auf geht-schon alle Ordner unterhalb des Posteingangs abgelegt – somit könnte der Posteingang keine Mails mehr empfangen …

In den Thunderbird Einstellungen muss TB mitgeteilt werden dass der Server keine Unterordner und Nachrichten in einem Ordner unterstützt:

Konten-Einstellungen -> Server-Einstellungen -> Erweitert... -> Server unterstützt Ordner, die Unterordner und Nachrichten enthalten

Beim anlegen eines neuen Ordners erscheint dann:

Thunderbird: neuer Ordner

Nach vielen Experimenten bin ich so vorgegangen:

  1. Server seitige Filter deaktivieren -> danach merkt man erst was alles unnützes reinkommt
  2.  Alte Mails löschen -> Mailinglisten, Newsletter etc waren bei mir 15.000 – 20.000 Mails
  3. Ordner Hierarchie ändern -> keine Unterordner unter den Posteingang; teilweise konnte ich hier einen ganzen Baum verschieben, teilweise musste ich aber auch die Wurzel manuell anlegen dann Unterordner einzeln verschieben -> das war der zeitaufwendigste Teil
  4. Ordner die Unterordner enthalten geleert -> die Mails habe ich in einen neuen Unterordner verschoben
  5. Mit dem Linux Tool ‚imapcopy‘ habe ich im ersten Schritt nur die Ordner auf dem neuen Server anlegen lassen -> dabei gab es teilweise Fehlermeldungen dass /ordner/1 und /ordner/2 nicht angelegt werden konnten. Der Grund war immer dass ‚/ordner‘ den falschen Typ hatte (darf Mails enthalten). In diesem Fall habe ich mit Thunderbird /ordner entfernt und neu mit dem richtigen Typ angelegt. Nach 3 oder 4 imapcopy Läufen waren dann alle Ordner auf dem neuen Server angelegt
  6. Mit dem Linux Tool ‚imapcopy‘ alle Mails umkopiert
  7. Ich habe ~300 Ordner und war mit allen Punkten einen kompletten Abend beschäftigt

Ein ähnliches Tool gibt es bestimmt auch für Windows. Falls nicht würde ich eine Linux Live CD z.B. von Ubuntu verwenden.

Bei Accounts mit wenigen Ordnern habe ich direkt im Thunderbird vom einen auf das andere Konto umkopiert. Auch hier gab es ein kleines Problem: in wenigen Ordnern hat mir Thunderbird keine Mail Inhalte angezeigt und konnte diese auch nicht umkopieren. Per geht-schon Webmailer war aber alles in Ordnung – daher habe ich die Mails per Webmailer in einen anderen Ordner verschoben und Thunderbird konnte sie wieder lesen.

Das ganze lässt sich natürlich auch problemlos in Etappen machen: ihr könnte schon alle Ordner umkopieren/verschieben und den alten Account trotzdem weiter nutzen. Neue Mails landen dort ja nur noch im Posteingang und im Ordner für gesendete Mails und lassen sich damit leicht nach erfolgter Umschaltung wieder finden.

Nachtrag von Matthias: unter Windows mache ich das mit Imapsync so:

@echo off
set host1=mail.geht-schon.de
set user1=deineMail@example.com
set password1=xxxxxxxxxxxxx
set host2=zielserver
set user2=deineMail@example.com
set password2=xxxxxxxxxxx
set imapsyncexe=imapsync-1.542.exe
%imapsyncexe% --useuid --host1 %host1% --user1 %user1% --password1
"%password1%" --folderrec "INBOX" --host2 %host2% --user2 %user2%
--password2 "%password2%" --regextrans2 "s/^INBOX\.(.+)/$1/"

Durch den Regex landet die Mailbox INBOX/1 als /1 beim Ziel. Damit entfällt das oben unter Punkt 3. erwähnte verschieben der Ordner.

ImapSync gibt es hier: http://imapsync.lamiral.info/