Mailserver – E-Mail Migration mit Imapsync

imapsync LogoBei der Migration eines ganzen Mailserver oder einzelner Postfächer steht man oft vor dem Problem des sauberen Transfers der vorhandenen E-Mails von Server zu Server.

Die einfachste Methode ist es, wenn der Zugriff auf das Dateisystem beider Server gegeben ist. Ist dies der Fall kann man die E-Mails auf Dateisystem-Ebene synchronisieren. Eine weitere Vorraussetzung ist es, dass auf beiden Server die E-Mails im selben Format vorliegen. Sollte dies nicht der Falls sein muss eine andere Lösung gefunden werden.

Postfächer mit Imapsync synchronisieren

Imapsync ist ein Tool für die Kommandozeile. Es erlaubt den rekrusiven Transfer von E-Mails zwischen zwei Imap-Postfächern. Es ist für nahezu alle Plattformen verfügbar und für Linux ist es meist in der Distribution enthalten.

Die Installation von Imapsync unter Centos funktioniert bei aktiviertem EPEL-Repository wie folgt:

yum install imapsync

Danach ist das Tool startklar.

Die Benutzung von Imapsync ist dem copy-Befehl sehr ähnlich, nur dass einige Parameter für den Login in das Postfach angegeben werden müssen.

/usr/bin/imapsync \
    --host1 quellserver --user1 userquelle --password1 passwortquelle \
    --host2 zielserver  --user2 userziel   --password2 passwortziel

Es gibt noch eine große Anzahl an Parameter für das Debuging und Verhalten der Synchronisation. So kann man diese z.B. mit –dry vorab testen, dabei werden noch keine E-Mails synchronisiert.

Eine komplette Liste der Parameter gibt es in der Manpage von Imapsync.

Damit seht einer unkomplizierten E-Mail Migration mit Imapsync nun nichts mehr im Wege.

Imapsync Bash-Script erstellen

Sollte die Migration mehr als ein Postfach umfassen lohnt es sich dazu ein Script zu erstellen. Wie dies aussehen könnte zeigt dieses Beispiel. Dabei wird von gleichen Imap-Zugangsdaten auf beiden Servern ausgegangen.

#!/bin/bash

HOST_SOURCE=quellserver
HOST_DESTINATION=zielserver

{ while IFS='|' read u1 p1; do
  imapsync \
    --host1 $HOST_SOURCE -user1 "$u1" -password1 "$p1" \
    --host2 $HOST_DESTINATION -user2 "$u1" -password2 "$p1"
done ; } < imap_accounts.txt

Die Zugangsdaten für die Postfächer liegen dabei in der Datei imap_accounts.txt. Das Trennzeichen ist in diesem Fall „|“ dies kann aber nach belieben angepasst werden, dazu muss aber auch eine Änderung im Bash-Script vorgenommen werden.

user1@domain.tld|password
user2@domain.tld|password
user3@domain.tld|password
user4@domain.tld|password
...

Nach dem Start des Import-Scriptes werden nun automatisert alle Postfächer synchronisiert.

E-Mail Migration mit dem Mail-Client

Ist das zu migrierende Postfach leer, weil der User die E-Mails per POP3 abgeholt hilft dieser Tip.

Der Benutzer richtet in seinem Mail-Client das neue Postfach zusätzlich zu dem alten Postfach ein. Ihm stehen dann im Client das alte und das neue Postfach gleichzeitig zur Verfügung. Nun kann der Benutzer per Drag&Drop die lokal gespeicherten Emails in das neue Postfach kopieren oder verschieben.

Sind die E-Mails transferiert sollte dies zur Sicherheit nochmals evtl. mit einem Blick ins Dateisystem oder einem Webmailer überprüft werden.

Anschliessend kann das alte Postfach aus dem Client entfernt werden.

Die Reihenfolge ist dabei wichtig, denn oft sind alle lokal gespeicherten E-Mails verloren wenn das Postfach aus dem Client entfernt wird. Dann hätte die Migration ein schnelles Ende und der User keine Emails mehr.

Weitere Infos zu imapsync gibt es in den Manpages oder auf der Projektseite von imapsync.

3 Kommentare

  1. Wieder mal ein guter Artikel. Danke!
    PS: Du könntest das Sync-Script noch etwas erweitern, so dass die Ziel-Postfäche andere Zugangsdaten haben können

    lg Patrick

  2. Wenn der User eh per POP3 abholt, braucht man auch nix migrieren – dann holt man (nach erfolgter DNS-Umschaltung) einfach noch ein letztes Mal ab und ändert dann die Zugangsdaten auf den neuen Server …

    1. Völlig richtig. Nur geht es hier um eine Migration zu einem IMAP-Konto. Meines Wissens kann kein Client ein POP3-Konto in ein IMAP-Konto umwandeln, daher muss der Transfer der Emails zu Mailserver manuell vorgenommen werden. Daher wurde hier der Weg des „Verschiebens“ der Emails im Client dargestellt.
      Bleibt man bei einem POP3-Konto braucht man nicht migrieren, da die Mails bereits lokal im Client gespeichert sind. Zungangsdaten ändern und gut ist.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.