Es gibt verschiedene Gründe E-Mails eines oder mehrerer E-Mail-Konten zu synchronisieren. IMAPSync ist dabei ein genialer Helfer, mit dem man E-Mails auf ein anderes oder neues Konto kopieren kann. Dabei bleiben die auf dem neuen Server evtl. schon neu vorhandene E-Mails selbstverständlich erhalten, so dass der Vorgang z.B. nach einer komplett vollzogenen DNS-Umstellung gefahros wiederholt werden kann. Das Synchronisieren von Mailkonten mit IMAPSync kann bei einem einzelnen E-Mail-Konto über die Kommandozeile oder bei einer größeren Zahl von Konten über ein kleines Script erfolgen.
Diese Anleitung bezieht sich auf Ubuntu 16.04 / 18.04.
Auf der -> Herstellerseite gibt es für Mac-OS und Windows eine englische Anleitung.
Installation
Für die Synchronisierung eines einzelnen E-Mail-Kontos lohnt sich keine eigene Installation. Der Autor Gilles Lamiral bietet dafür unter -> https://i005.lamiral.info/X/ eine Onlineversion an, in der lediglich Username, Passwort und IP oder Servername für den Quell- und Zielserver eingetragen werden müssen.
Für die Installation auf einem Mailserver bekommt man das Programmpaket auf -> GitHub. Die Software kann auf einem der Mailserver oder auf einem anderen beliebigen Rechner installiert werden. Um das Paket auf den Server/Rechner zu kopieren verwendet man die Adresse, die man auf GitHub mit dem grünen Button Clone or Download kopieren kann.
Zum Kopieren mit git wechselt man in das Zielverzeichnis oder das home-Verzeichnis des Servers/Rechners und gibt in die Konsole ein:
Sollte git nicht installiert sein, bekommt man es mit
:~$ sudo apt install git
git hat das komplette Paket jetzt in ein Unterverzeichnis imapsync kopiert. Zusätzlich werden einige Pakete benötigt, die nachinstalliert werden müssen (Quelle: -> hier ).
:~$ sudo apt-get install libauthen-ntlm-perl libclass-load-perl libcrypt-ssleay-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-dbus-perl libnet-ssleay-perl libpar-packer-perl libreadonly-perl libregexp-common-perl libsys-meminfo-perl libterm-readkey-perl libtest-fatal-perl libtest-mock-guard-perl libtest-mockobject-perl libtest-pod-perl libtest-requires-perl libtest-simple-perl libunicode-string-perl liburi-perl libtest-nowarnings-perl libtest-deep-perl libtest-warn-perl make cpanminus
:~$ sudo cpanm Mail::IMAPClient
Verwendet einer der Mailserver XOAUTH2, dann muss noch installiert werden:
Befindet man sich im home-Verzeichnis, kann man IMAPSync bereits testen.
:~$ ./imapsync --testslive
Synchronisieren
Die Syntax für IMAPSync lautet
Soll eine Vielzahl von Konten synchronisiert werden, legt man eine Text-Datei an, in der die Anmeldedaten der User auf beiden Servern durch Semikolon getrennt stehen.
Login-Name auf Quellserver;Passwort auf Quellserver;Login-Name auf Zielserver;Passwort auf Zielserver
Lautet der Name dieser Textdatei mailboxes.txt und liegt die Datei im Verzeichnis imapsync, dann erstellt man ebenfalls dort eine ausführbare Script-Datei mit folgenden Inhalt:
{ while IFS=';' read u1 p1 u2 p2; do
imapsync --host1 <IP oder FQDN Quellserver> --user1 "$u1" --password1 "$p1" --host2 <IP oder FQDN Zielserver> --user2 "$u2" --password2 "$p2" --automap --ssl1 --ssl2
done } < mailboxes.txt
Standardmäßig wird für jedes synchronisierte Konto im Unterverzeichnis LOG_imapsync ein LOG-File erzeugt.
Probleme
hatte ich mit der Software bisher keine. Allerdings muss man daran denken, dass IMAPSync immer den kompletten Stand des Quellservers auf dem Zielserver nachbildet und keine neuen oder verschobenen Mails auf dem Zielserver löscht oder auf Duplikate in anderen Verzeichnissen prüft. Hat man z.B. seinen Posteingang auf dem Ziel-Server aufgeräumt und Mails in andere Verzeichnisse verschoben, die es auch auf dem Quell-Server gibt, so wird eine erneute Synchronisierung dazu führen, dass die diese Mails wieder im Posteingang stehen.
Seite des Autors -> IMAPSync