Imapsync installieren und nutzen

[Letzte Aktualisierung: 16.09.2020, 14:19 Uhr] 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 update
apt -y upgrade
apt install -y git make gcc
apt install -y apt-file cpanminus libc6-dev libssl-dev
apt install -y libperl-dev zlib1g-dev libnet-ssleay-perl

mount -o remount,exec /tmp
cpanm App::cpanminus Authen::NTLM CGI Compress::Zlib Crypt::OpenSSL::RSA Data::Dumper Data::Uniqid Dist::CheckConflicts Encode Encode::IMAPUTF7 File::Copy::Recursive File::Tail IO::Socket::INET IO::Socket::INET6 IO::Socket::SSL IO::Tee JSON JSON::WebToken LWP::UserAgent Mail::IMAPClient Module::ScanDeps PAR::Packer Pod::Usage Readonly Regexp::Common Sys::MemInfo Term::ReadKey Test::MockObject Test::More Test::Pod Unicode::String
mount -o remount,noexec /tmp

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.977 on host meet, a linux system with 0.2/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. 🙂