Imapsync installieren und nutzen

Es steht der Umzug einiger IMAP Postfächer von Anbieter A zu Anbieter B an.  Im Regelfall bindet man bei Verwendung eines E-Mail-Programms das neue Postfach zusätzlich ein. Anschließend verschiebt man die jeweiligen Verzeichnisse und E-Mails. Dies ist in diesem Szenario nicht möglich. Da es sich aber um keine geschäftlichen Rechner handelt, sondern um Private, rühren wir diese weder persönlich noch per Fernwartung an. Zudem soll im Vorfeld des Umzugs einmal der Datenbestand zwischen den jeweiligen Postfächern abgeglichen werden, damit bei der Umzug des MX-Eintrags nur noch wenige Objekte zu kopieren sind.

Bei meinen Recherchen bin ich auf das Tool Imapsync gestoßen. Dieses ist Open Source und der Quellcode kann auf GitHub eingesehen werden. Nachdem ich keine funktionierende Anleitung gefunden habe, habe ich für diesen Artikel entschieden. Es gibt zwar im Repository für die gängigen Betriebssystemen Anleitungen, aber auch die sind nicht ganz aktuell.

Ausgangslage ist eine virtuelle Maschine mit Ubuntu 18.04 LTS. Folgende Befehle nacheinander ausführen:

apt-get update
apt-get -y upgrade

apt install -y git make cpanminus
apt install -y libssl-dev libperl-dev libpar-packer-perl libc6-dev zlib1g-dev gcc

cpanm File::Tail Authen::NTLM CGI Crypt::OpenSSL::RSA Data::Uniqid Digest::HMAC Digest::HMAC_MD5 Dist::CheckConflicts File::Copy::Recursive IO::Socket::INET6 IO::Socket::SSL IO::Tee JSON JSON::WebToken JSON::WebToken::Crypt::RSA HTML::Entities LWP::UserAgent Mail::IMAPClient Module::Implementation Module::Runtime Module::ScanDeps Net::SSLeay Package::Stash Package::Stash::XS PAR::Packer Parse::RecDescent Readonly Regexp::Common Sys::MemInfo Term::ReadKey Test::Fatal Test::Mock::Guard Test::MockObject Test::Pod Test::Requires Test::Deep Try::Tiny Unicode::String URI::Escape

cd /usr/local/src
git clone https://github.com/imapsync/imapsync.git
cd imapsync
make install

Die Installation der Voraussetzungen mit Hilfe von cpanm kann je nach Systemleistungen mehrere Minuten dauern. Zeit für einen Kaffee oder Tee. 🙂

Abschließend darf natürlich der Funktionstest nicht fehlen:

daniel@ubu1804.dev.lab03.wydler.eu:~# imapsync -testslive 
Creating directory LOG_imapsync
Here is imapsync 1.945 on host ubu1804.dev.lab03.wydler.eu, a linux system with 0.6/1.9 free GiB of RAM
with Perl 5.26.1 and Mail::IMAPClient 3.42
Transfer started at Sat Feb  1 13:33:03 2020
PID is 21602 my PPID is 1369
...

Das Tool startet mal ohne Fehlermeldung. 🙂

Die Syntax bzw. die Nutzung des Tools ist recht schlicht gehalten. Wichtig ist, dass bei Sondernzeichen sind die Werte in Hochkommas zu setzen. Daher habe ich mich entschlossen alle Werte gleich zu behandeln.

imapsync --dry --delete2 --delete2folders \
       --host1 'test1.lamiral.info' --user1 'test1' --password1 'secret1' \
       --host2 'test2.lamiral.info' --user2 'test2' --password2 'secret2'

Viel Spaß beim Ausprobieren. 🙂