E-Mails sicher von einem Hoster zum anderen umziehen – mit imapsync - Schritt-für-Schritt-Anleitung
Wer seinen Webhoster wechselt, hat die Website meistens schnell übertragen: Dateien kopieren, Datenbank exportieren und beim neuen Anbieter wieder importieren, Domain umziehen – fertig.
Bei den E-Mails sieht es etwas anders aus.
In einem IMAP-Postfach können sich über viele Jahre Tausende Nachrichten angesammelt haben. Dazu kommen gesendete E-Mails, Papierkorb, Entwürfe, Archive und zahlreiche selbst angelegte Ordner.
Genau vor diesem Problem stand ich bei meinem eigenen Hosterwechsel.
Meine Anforderungen waren relativ einfach: Alle vorhandenen E-Mails sollten inklusive der Ordnerstruktur auf den neuen Mailserver kopiert werden. Auf dem alten Server sollte dabei zunächst nichts gelöscht werden.
Nach einigen Versuchen stellte sich imapsync dafür als sehr praktische Lösung heraus.
In dieser Anleitung zeige ich, wie man E-Mail-Postfächer mit imapsync Schritt für Schritt von einem Hoster zu einem anderen migriert – einschließlich Verbindungstest, Dry-Run und der korrekten Zuordnung von Ordnern wie „Gesendet“, „Papierkorb“ und „Spam“.
Was ist imapsync?
imapsync ist ein Werkzeug zur Synchronisation zweier IMAP-Postfächer.
Das Prinzip ist einfach:
Alter Mailserver
│
│ IMAP
▼
imapsync
│
│ IMAP
▼
Neuer Mailserverimapsync meldet sich gleichzeitig beim alten und beim neuen Mailserver an und kopiert die Nachrichten zwischen den beiden Postfächern.
Das hat gegenüber einem manuellen Export einige Vorteile.
Die E-Mails müssen nicht zunächst lokal gespeichert und anschließend wieder importiert werden. Auch große Postfächer lassen sich übertragen und ein Transfer kann später erneut durchgeführt werden.
Besonders wichtig bei einem Hosterwechsel: Ohne entsprechende Löschoptionen entfernt imapsync keine Nachrichten vom alten Server.
Damit bleibt das ursprüngliche Postfach zunächst als zusätzliche Sicherheitskopie erhalten.
Was benötigt man für den Umzug?
Für beide Mailserver benötigt man die jeweiligen IMAP-Zugangsdaten.
Für den alten Server beispielsweise:
IMAP-Server: imap.alter-hoster.example
Port: 993
Benutzer: ALTER_BENUTZER
Passwort: ********Und für den neuen Server:
IMAP-Server: imap.neuer-hoster.example
Port: 993
Benutzer: mail@example.org
Passwort: ********Port 993 wird üblicherweise für verschlüsselte IMAP-Verbindungen über SSL/TLS verwendet.
Achtung beim IMAP-Benutzernamen
Eine kleine Besonderheit hat mich bei der Migration zunächst aufgehalten:
Der IMAP-Benutzername muss nicht identisch mit der E-Mail-Adresse sein.
Einige Hostinganbieter verwenden interne Namen für ihre Postfächer. Der Benutzername könnte dann beispielsweise so aussehen:
mailbox123-userobwohl die eigentliche E-Mail-Adresse lautet:
user@example.orgDeshalb sollte man die korrekten IMAP-Zugangsdaten vorher im Kundenbereich des alten Hosters nachsehen.
imapsync auf dem Mac installieren
Ich habe den Umzug auf einem Mac durchgeführt.
Am einfachsten lässt sich imapsync dort über Homebrew installieren:
brew install imapsyncDanach kann man überprüfen, ob die Installation funktioniert:
imapsync --versionimapsync steht auch für Linux und Windows zur Verfügung. Die Installation unterscheidet sich dort entsprechend.
Schritt 1: IMAP-Verbindung testen
Bevor man imapsync startet, sollte zunächst geprüft werden, ob der Mailserver überhaupt über das Netzwerk erreichbar ist.
Unter macOS und Linux eignet sich dafür beispielsweise nc:
nc -vz imap.alter-hoster.example 993Für den neuen Server entsprechend:
nc -vz imap.neuer-hoster.example 993Bei einer erfolgreichen Verbindung erscheint sinngemäß:
Connection to imap.alter-hoster.example port 993 succeeded!Wenn die Verbindung nicht funktioniert
Genau hier hatte ich während meines Umzugs ein Problem.
Der Mailserver war über Webmail problemlos erreichbar, imapsync konnte jedoch keine Verbindung aufbauen. Ursache war letztendlich eine Firewall, die die direkte Verbindung auf Port 993 blockierte.
Deshalb lohnt sich dieser einfache Test.
Wenn bereits nc keine Verbindung herstellen kann, braucht man noch nicht nach falschen Passwörtern oder imapsync-Optionen zu suchen.
Mögliche Ursachen sind:
- Firewall
- Router-Regeln
- VPN
- gesperrter Port 993
- falscher IMAP-Servername
- temporäre Serverprobleme
Erst wenn die Verbindung funktioniert, geht es weiter.
Schritt 2: Login am alten Mailserver testen
Jetzt prüfen wir die Anmeldung am alten Server.
Dafür bietet imapsync die Option --justlogin.
imapsync --host1 imap.alter-hoster.example --port1 993 --ssl1 --user1 "ALTER_BENUTZER" --justloginDas Passwort schreibe ich bewusst nicht in den Befehl.
imapsync fragt anschließend danach:
What's the password for ALTER_BENUTZER?Das eingegebene Passwort wird dabei nicht angezeigt.
Bei einer erfolgreichen Anmeldung erscheint unter anderem:
Host1: success loginund am Ende:
Exiting with return value 0Damit wissen wir, dass Server, Port, SSL, Benutzername und Passwort korrekt sind.
Schritt 3: Login am neuen Mailserver testen
Jetzt wiederholen wir den Test für das neue Postfach:
imapsync --host1 imap.neuer-hoster.example --port1 993 --ssl1 --user1 "mail@example.org" --justloginAuch hier sollte anschließend erscheinen:
Host1: success loginIch würde den eigentlichen Mailumzug erst beginnen, wenn beide Login-Tests unabhängig voneinander funktionieren.
Das macht die spätere Fehlersuche erheblich einfacher.
Schritt 4: Erst einen Dry-Run durchführen
Jetzt könnten wir eigentlich bereits mit dem Kopieren beginnen.
Davon würde ich allerdings abraten.
imapsync besitzt mit --dry eine sehr praktische Möglichkeit, zunächst zu simulieren, was bei der Migration passieren würde.
Ein einfacher Dry-Run sieht beispielsweise so aus:
imapsync --host1 imap.alter-hoster.example --port1 993 --ssl1 --user1 "ALTER_BENUTZER" --host2 imap.neuer-hoster.example --port2 993 --ssl2 --user2 "mail@example.org" --dryDie Passwörter werden wieder interaktiv abgefragt.
Der große Vorteil: Man sieht jetzt unter anderem, welche Ordner auf beiden Servern existieren und wie imapsync sie zuordnen würde.
Vorsicht bei Gesendet, Papierkorb und Spam
Hier zeigte sich bei meinem Hosterwechsel die nächste Besonderheit.
Der alte Mailserver verwendete beispielsweise englische Ordnernamen:
INBOX
Sent
Sent Messages
Drafts
Trash
Deleted Messages
Junk
ArchiveDer neue Mailserver hatte dagegen bereits deutsche Standardordner:
INBOX
Gesendet
Entwürfe
Papierkorb
Spam
ArchivWürde man die Migration einfach ohne Kontrolle starten, könnten anschließend beide Varianten vorhanden sein:
Sent
Gesendet
Trash
Papierkorb
Junk
SpamDie Nachrichten wären zwar vorhanden, aber die Ordnerstruktur wäre unnötig unübersichtlich.
Ordner mit –f1f2 richtig zuordnen
Deshalb habe ich die Ordner explizit zugeordnet.
imapsync bietet dafür --f1f2.
Die gewünschte Zuordnung sah beispielsweise so aus:
Sent → Gesendet
Sent Messages → Gesendet
Trash → Papierkorb
Deleted Messages → Papierkorb
Drafts → Entwürfe
Junk → Spam
Archive → ArchivEin entsprechender Dry-Run sieht beispielsweise so aus:
imapsync --host1 imap.alter-hoster.example --port1 993 --ssl1 --user1 "ALTER_BENUTZER" --host2 imap.neuer-hoster.example --port2 993 --ssl2 --user2 "mail@example.org" --f1f2 "Archive=Archiv" --f1f2 "Sent=Gesendet" --f1f2 "Sent Messages=Gesendet" --f1f2 "Trash=Papierkorb" --f1f2 "Deleted Messages=Papierkorb" --f1f2 "Drafts=Entwürfe" --f1f2 "Junk=Spam" --dryDie tatsächlichen Namen sollte man immer anhand der Ausgabe des eigenen Servers kontrollieren.
Gerade Umlaute können intern vom IMAP-Server anders dargestellt werden. Ein Ordner namens „Entwürfe“ muss deshalb in einer imapsync-Ausgabe nicht zwangsläufig genauso aussehen.
Eigene Ordner korrekt übernehmen
Bei meinem alten Hoster gab es noch eine weitere Besonderheit.
Selbst angelegte Ordner wurden unterhalb von INBOX gespeichert.
Zum Beispiel:
INBOX/Rechnungen
INBOX/Projekte
INBOX/Kunden
INBOX/UrlaubAuf dem neuen Server wollte ich diese Ordner jedoch auf oberster Ebene haben:
Rechnungen
Projekte
Kunden
UrlaubDafür kann imapsync die Namen während des Transfers mit einem regulären Ausdruck verändern:
--regextrans2 's#^INBOX/(.+)$#$1#'Damit wird beispielsweise:
INBOX/Rechnungenzu:
RechnungenDer eigentliche Posteingang INBOX ist davon nicht betroffen.
Der komplette imapsync-Befehl
Nach mehreren Tests sah der allgemeine Aufbau für meine Migration schließlich so aus:
imapsync --host1 imap.alter-hoster.example --port1 993 --ssl1 --user1 "ALTER_BENUTZER" --host2 imap.neuer-hoster.example --port2 993 --ssl2 --user2 "mail@example.org" --f1f2 "Archive=Archiv" --f1f2 "Sent=Gesendet" --f1f2 "Sent Messages=Gesendet" --f1f2 "Trash=Papierkorb" --f1f2 "Deleted Messages=Papierkorb" --f1f2 "Drafts=Entwürfe" --f1f2 "Junk=Spam" --regextrans2 's#^INBOX/(.+)$#$1#'Wichtig: Dieses Beispiel muss an die tatsächlichen Ordnernamen der beiden verwendeten Mailserver angepasst werden.
Für den Test hängt man zunächst einfach:
--dryan.
Wenn alles richtig aussieht, wird --dry entfernt und der eigentliche Transfer gestartet.
Was passiert während des Transfers?
imapsync geht die Ordner nacheinander durch und vergleicht Quelle und Ziel.
Je nach Größe des Postfachs kann der Vorgang einige Zeit dauern.
Ein Postfach mit vielen kleinen Nachrichten verhält sich dabei anders als ein Postfach mit wenigen, aber sehr großen Anhängen.
Am Ende erhält man eine Statistik.
Interessant sind insbesondere Angaben wie:
Folders synced
Messages transferred
Messages skipped
Messages found in host1 not in host2
Messages deleted on host1
Detected errorsIm Idealfall steht am Ende:
Detected 0 errorsimapsync ein zweites Mal laufen lassen
Einer der größten Vorteile von imapsync ist, dass der Vorgang wiederholt werden kann.
Das ist für einen Hosterwechsel ideal.
Man kann beispielsweise zunächst sämtliche vorhandenen Nachrichten kopieren, anschließend die Domain beziehungsweise die Mailserver-Einstellungen umstellen und danach einen weiteren Abgleich durchführen.
Eine mögliche Strategie sieht so aus:
Neues Postfach anlegen
↓
Erster imapsync-Lauf
↓
Domain / MX umstellen
↓
Neues Postfach testen
↓
Zweiter imapsync-Lauf
↓
Altes Postfach als Backup behalten
↓
Alten Vertrag später beendenDer zweite Lauf muss nicht zwangsläufig wieder alle Nachrichten übertragen. imapsync vergleicht Quelle und Ziel und kann bereits vorhandene Nachrichten erkennen.
Das reduziert auch das Risiko, dass während der eigentlichen Umstellung noch eine Nachricht im alten Postfach zurückbleibt.
Passwörter gehören nicht in den Beispielbefehl
Bei einem Blogartikel über imapsync findet man häufig Befehle, in denen Benutzername und Passwort direkt angegeben werden.
Das würde ich vermeiden.
Ein Passwort kann dadurch beispielsweise in der Shell-History oder unter Umständen in Prozessinformationen auftauchen.
Für einen manuellen Umzug ist es einfacher, das Passwort überhaupt nicht als Parameter anzugeben.
imapsync fragt es dann interaktiv ab.
Wer sehr viele Postfächer automatisiert migrieren möchte, kann stattdessen mit Passwortdateien arbeiten. Dafür gibt es unter anderem:
--passfile1
--passfile2Solche Dateien müssen entsprechend vor unberechtigtem Zugriff geschützt werden.
Für einen einmaligen privaten Hosterwechsel finde ich die interaktive Passworteingabe allerdings deutlich unkomplizierter.
Was imapsync nicht überträgt
Ein wichtiger Punkt wird leicht übersehen:
imapsync migriert IMAP-Inhalte.
Damit bekommt man insbesondere Nachrichten und Ordner vom alten zum neuen Server.
Nicht automatisch übertragen werden beispielsweise:
- Kontakte und Adressbücher
- Kalender
- Weiterleitungen
- E-Mail-Aliase
- Autoresponder
- serverseitige Filterregeln
- Spamfilter-Konfigurationen
- andere Einstellungen des Hostingaccounts
Diese Dinge sollte man separat im neuen Kundenkonto einrichten beziehungsweise mit dafür vorgesehenen Export- und Importfunktionen übertragen.
Typische Probleme beim Mailumzug
AUTHENTICATIONFAILED
Wenn imapsync meldet:
AUTHENTICATIONFAILEDsollte man zuerst Benutzername und Passwort kontrollieren.
Dabei nicht vergessen: Der IMAP-Benutzername des alten Hosters kann ein interner Postfachname und nicht die sichtbare E-Mail-Adresse sein.
Connection timed out
Bei einem Timeout sollte zunächst getestet werden:
nc -vz imap.alter-hoster.example 993Funktioniert bereits das nicht, liegt das Problem wahrscheinlich nicht bei imapsync.
Firewall, VPN, Router und Serveradresse sind dann die ersten Kandidaten.
Nach dem Umzug gibt es Sent und Gesendet
Dann wurden die Standardordner wahrscheinlich nicht passend zugeordnet.
Nicht vorschnell einen der beiden Ordner löschen!
Zuerst sollte kontrolliert werden, welche Nachrichten sich jeweils darin befinden. Anschließend kann man das Mapping mit --f1f2 korrigieren und imapsync erneut laufen lassen.
Nach dem Umzug unbedingt kontrollieren
Auch wenn imapsync keine Fehler meldet, würde ich das alte Postfach nicht sofort löschen.
Ich habe nach der Migration insbesondere folgende Punkte kontrolliert:
- Sind alte Nachrichten im Posteingang vorhanden?
- Sind gesendete E-Mails vollständig?
- Funktionieren alte Anhänge?
- Sind eigene Ordner vorhanden?
- Sind Archiv und Papierkorb vollständig?
- Funktioniert der Empfang neuer Nachrichten?
- Kann ich über den neuen Server E-Mails versenden?
- Funktionieren Smartphone und Desktop-Mailprogramm?
- Stimmen Absenderadresse und Absendername?
Das alte Postfach kann anschließend noch eine Zeit lang als Sicherheitskopie bestehen bleiben.
Mehrere E-Mail-Postfächer migrieren
Hat man mehrere Adressen, wiederholt man den Vorgang einfach für jedes Postfach.
Beispielsweise:
POSTFACH_ALT_1 → person1@example.org
POSTFACH_ALT_2 → person2@example.org
POSTFACH_ALT_3 → info@example.org
POSTFACH_ALT_4 → support@example.orgWenn die Server bei beiden Hostern für alle Accounts identisch sind, müssen im fertigen Befehl hauptsächlich die beiden Benutzernamen geändert werden.
Trotzdem habe ich für jedes Postfach zunächst einen Dry-Run durchgeführt.
Das lohnt sich, weil die Ordnerstruktur unterschiedlich sein kann. Ein Benutzer besitzt vielleicht einen Archivordner, ein anderer nicht. Manche Accounts enthalten zusätzliche selbst angelegte Ordner.
Fazit: Mailserver-Wechsel ohne Export-Chaos
Vor meinem Hosterwechsel hatte ich erwartet, dass die Migration der E-Mails einer der unangenehmsten Teile werden würde.
Mit imapsync war der eigentliche Transfer letztendlich erstaunlich kontrollierbar.
Entscheidend war für mich, nicht sofort tausende Nachrichten zu kopieren, sondern Schritt für Schritt vorzugehen:
IMAP-Port testen
↓
Login beim alten Server testen
↓
Login beim neuen Server testen
↓
Dry-Run
↓
Ordner kontrollieren
↓
Ordner-Mapping festlegen
↓
Migration starten
↓
Ergebnis kontrollieren
↓
Später erneut synchronisierenBesonders hilfreich sind der Dry-Run und die Möglichkeit, die Ordner des alten und neuen Mailservers gezielt aufeinander abzubilden.
Damit lässt sich auch ein größeres IMAP-Postfach inklusive Posteingang, gesendeter Nachrichten, Papierkorb und eigener Ordner auf einen neuen Hoster übertragen, ohne zuerst alles lokal exportieren und wieder importieren zu müssen.
Und solange man keine Löschoptionen verwendet, bleiben die ursprünglichen Nachrichten auf dem alten Mailserver erhalten.
Das ist für mich bei einer Migration der entscheidende Punkt: Erst kopieren, dann kontrollieren und erst ganz am Ende aufräumen.