E-Mail-Postfächer synchronisieren/umziehen mit imapsync
imapsync ist ein kleines Tool um E-Mail-Postfächer via IMAP zwischen zwei Hosts zu synchronisieren. Meist nutze ich das Script, wenn ein E-Mail-Postfach von einem Server zu einem anderen umgezogen werden soll.
Das auf Perl basierende Script kopiert nicht nur die E-Mails, sondern sondern übernimmt auch die Flags und andere Metadaten der Nachrichten. Zudem wird jede E-Mail nur einmal übertragen (alle fehlenden), auch wenn das Script mehrmals auf einem Postfach ausgeführt wird.
Früher gab es imapsync als Paket für apt-get (Debian, Ubuntu, …). Dies ist jetzt leider nicht mehr der Fall.
imapsync unter Debian/Ubuntu installieren (kompilieren)
Abhängigkeiten installieren
RUN apt-get update RUN apt-get install \ git-core \ make \ makepasswd \ rcs \ perl-doc \ libmail-imapclient-perl \ libdigest-hmac-perl \ libterm-readkey-perl \ libio-socket-ssl-perl \ libdate-manip-perl \ libmail-imapclient-perl \ libfile-copy-recursive-perl \ libio-tee-perl \ libunicode-string-perl
imapsync von GitHub klonen und installieren
git clone git://github.com/imapsync/imapsync.git cd imapsync mkdir dist sudo make install
Anschließend kann imapsync genutzt werden: imapsync -v
Verwendung
Das Tool hat unzählige mögliche Optionen, für alle möglichen Szenarien. So können Ordner ausgeschlossen werden, SSL konfiguriert werden, man kann Ordner ummappen, E-Mails nach der Synchronisation vom Quellserver löschen lassen und vieles mehr. Um sich alle Optionen anzeigen zu lassen, einfach imapsync ohne Parameter aufrufen:
$ imapsync
Meistens wird das Script mit folgenden Optionen genutzt:
$ imapsync --dry --host1 host1.example.com --user1 "[email protected]" --password1 "bar" --host2 host2.example.com --user2 "[email protected]" --password2 "bar"
Die --dry
Option sorgt in diesem Fall dafür, dass der Sync nur simuliert wird. Wenn die Synchronisation wirklich durchgeführt werden soll, wird das Script ohne die dry-Option ausgeführt.
Docker Container
Ich habe für imapsync einen Docker Container erstellt. Hier wird imapsync direkt im Container installiert. Zudem ist ein Script enthalten, welches direkt mehrere Postfächer synchronisieren kann.