Briefkästen

E-Mailkonten migrieren mittels imapsync

Um E-Mails von einem Konto in ein anders Konto verschieben, gibt es viele Wege. Einer davon ist imapsync. Relativ einfach lassen sich damit zwei Konten miteinander synchronisieren.

In den Beispielen werden zwei mal die gleiche E-Mailadresse verwendet.
Mit imapsync lassen sich auch E-Mails auf ein neues Konto.
Beispiel: patrick@meinefirma.com -> info@example.com

Voraussetzungen

Bei imapsync handelt es sich um ein Programm das in Perl geschrieben wurde. Somit müssen, auf dem System, zuerst einige libraries installiert werden, zusätzlich noch git und andere Kleinigkeiten.

sudo apt-get install git rcs make makepasswd cpanminus
sudo apt-get install libauthen-ntlm-perl \ 
     libclass-load-perl libcrypt-ssleay-perl liburi-perl \
     libdata-uniqid-perl libdigest-hmac-perl libdist-checkconflicts-perl \
     libfile-copy-recursive-perl libio-compress-perl libio-socket-inet6-perl \
     libio-socket-ssl-perl libio-tee-perl libmail-imapclient-perl \
     libmodule-scandeps-perl libnet-ssleay-perl libpar-packer-perl \
     libreadonly-perl libsys-meminfo-perl libterm-readkey-perl \
     libtest-fatal-perl libtest-mock-guard-perl libtest-pod-perl \
     libtest-requires-perl libtest-simple-perl libunicode-string-perl

Zum Schluss noch zwei paar Perl Module

sudo cpanm Mail::IMAPClient JSON::WebToken Test::MockObject 
sudo cpanm Unicode::String Data::Uniqid

Installation imapsync

Zuerst laden wir die neuste Version von imapsync von github.com herunter.

git clone https://github.com/imapsync/imapsync.git

Als nächstes in das soeben heruntergeladene Verzeichnis wechseln und imapsync installieren

cd imapsync
mkdir -p dist
sudo make install

E-Mail synchronisieren

Nachdem alles installiert wurde, können wir anfangen unser E-Mail Konto auf den neuen Server zu verschieben / migrieren / synchronisieren …

imapsync   --host1 mail.beyond.lol  \
	   --user1 first@beyond.lol 	    \
	   --password1 FirstPassword1  	    \
	   --ssl1			    \
	   --host2 mail2.beyond.lol    \
	   --user2 first@beyond.lol 	    \
	   --password2 NewFirstPassword1  \
	   --ssl2

Der Befehl kann auch in einer Zeile erfolgen. Verschiedene Ports werden mit der Option –port1 und für das zweite Konto mit –port2 angegeben.

Mehrere Konten

imapsync verfügt selber über keine Option um mehrere Konten in eine Warteschlange zu packen. Macht aber nichts, mit einer kleinen Shell-Script lässt sich dies wie folgt bewerkstelligen

Als erstes eine neue Datei anlegen

touch imapsync.sh

mit einem Editor aufmachen und diese Zeilen einfügen. Anschliessend speichern

#!/bin/sh
{ while IFS=';' read  h1 u1 p1 h2 u2 p2 fake
    do 
        imapsync --host1 "$h1" --user1 "$u1" --password1 "$p1" \
                 --host2 "$h2" --user2 "$u2" --password2 "$p2" "$@" 
    done 
} < file.txt

Die Schleife in unserem Script wird solange durchlaufen bis in der Datei file.txt keine Zeilen mehr vorhanden sind.

file.txt

In die Datei file.txt packen wir nun alle Konten die synchronisiert werden sollen.

host001_1;user001_1;password001_1;host001_2;user001_2;password001_2;
host002_1;user002_1;password002_1;host002_2;user002_2;password002_2;
host003_1;user003_1;password003_1;host003_2;user003_2;password003_2;
host004_1;user004_1;password004_1;host004_2;user004_2;password004_2;

Richtig ausgefühlt sollte das File in etwas so aussehen:

mail01.beyond.lol;info@example.com;Password!1;mail02.beyond.lol;info@examplelol.com;Password!1;
mail01.beyond.lol;mueller@example.com;Password!1;mail02.beyond.lol;info@examplelol.com;Password!1;
mail01.beyond.lol;jakob@example.com;Password!1;mail02.beyond.lol;info@examplelol.com;Password!1;
mail01.beyond.lol;ciao@example.com;Password!1;mail02.beyond.lol;info@examplelol.com;Password!1;

Konto1 und Konto2 müssen nicht den gleichen Namen haben.

speichern und das Script ausführen
./imapsync.sh

Schreibe einen Kommentar

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