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
Update 30.05.2020
Wir wurden auf einen Fehler, von unserer Seite, hingewiesen.
Wenn der Entwickler was sagt, dann gilt das auch.
Wir lassen den Beitrag mal so wie er ist. Aber die Optionen –ssl1 und -ssl2 könnt Ihr weglassen, macht aber auch nichts wenn Sie drin stehen.