Wer IMAP nutzt, geniesst alle Vorteile der zentralen Verwaltung seiner Mails auf dem Server. Problematisch wird es dann, wenn man den Provider oder den Server wechseln möchte. Der folgende Artikel zeigt, wie man IMAP-Konten umziehen, auf andere Konten synchronisieren oder einfach eine lokale Sicherheitskopie vom Mailbestand anlegen kann. Es ist alles der gleiche Vorgang.

IMAPSync: Mailkonten von Server zu Server kopieren

Zum Einsatz kommt ein Tool namens IMAPSync. Die Funktionsweise ist so genial wie einfach: Man benötigt neben dem alten IMAP-Konto ein bereits fertig eingerichtetes IMAP-Konto auf dem neuen Server. IMAPSync meldet sich an beiden Konten an und synchronisiert die Daten.

Dabei ist es unerheblich ob IMAPSync direkt auf dem alten Server, dem neuen Server oder auf einem Client dazwischen läuft. Betreibt man IMAPSync jedoch direkt auf einem Server, so nutzt man die uneingeschränkte Bandbreite zwischen den Servern. Bei einem Client ist in der Regel der DSL Uplink wesentlich langsamer.

imapsync-szenarien-2

Auch POP-Konten lassen sich mit IMAPSync synchronisieren, sofern sie per IMAP erreichbar sind.

IMAPSync ist unter Linux, Mac OSX und Windows verfügbar. Während unter Windows eine fertige .exe-Datei geliefert wird, ist die Installation unter Linux oder Mac OSX etwas komplexer.

IMAPSync unter Linux installieren

Im folgenden Beispiel installieren wir IMAPSync unter Ubuntu 14. Zuerst müssen einige “Dependencies” installiert werden, d.h. andere Programme bzw. Libraries die IMAPSync benötigt:

sudo apt-get install libperl-dev libssl-dev makepasswd rcs perl-doc libio-tee-perl git libmail-imapclient-perl libdigest-md5-file-perl libterm-readkey-perl libfile-copy-recursive-perl build-essential make automake libunicode-string-perl

Des Weiteren benötigen wir noch einige Module für Perl:
sudo cpan
cpan> install Unicode::String
cpan> install Authen::NTLM 
cpan> install Data::Uniqid 
cpan> install JSON::WebToken 
cpan> install Readonly 
cpan> install Test::MockObject 
cpan> install Test::Pod
cpan> install IO::Socket::INET6
cpan> install App::cpanminus 
cpan> install Crypt::OpenSSL::RSA 
cpan> install PAR::Packer 
cpan> install Regexp::Common 
cpan> install Sys::MemInfo
cpan> quit

Als nächstes wird IMAP-Sync aus dem GIT Repositorium geladen:
cd
mkdir install
cd install
git clone git://github.com/imapsync/imapsync.git

Nun kann IMAPSync zusammengebaut und installiert werden:
cd imapsync 
mkdir dist 
sudo make install

Ist alles glatt gelaufen, meldet sich IMAPSync nach Eingabe von “imapsync -v” mit seiner aktuellen Versionsnummer.

 IMAPSync unter Mac OSX installieren

Wesentlich einfacher gestaltet sich die Installation unter Mac OSX mittel Homebrew:

ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)" < /dev/null 2> /dev/null
brew install imapsync

Unter Mac OSX 10.11 wird das Verlinken am Ende des Installationsvorgangs fehlschlagen, da der User nicht genügend Rechte am Ordner /usr/local/bin hat. Hier sollte manuell in einen Ordner mit entsprechenden Rechten verlinked werden, z.B “bin” im Home-Ordner des Users:
ln -s /usr/local/Cellar/imapsync/1.607/bin/imapsync ~/bin/imapsync

IMAPSync: Automatisierung der Synchronisation von IMAP-Konten per Script

Das folgende Script synchronisiert ein IMAP-Konto von server1.com auf server 2.com Benutzername und Passwörter der IMAP-Konten sind auf beiden Servern gleich. Der Vorgang ist inkrementell. D.h. man kann z.B. in einem ersten Durchlauf grosse Datenmengen synchronisieren und startet dann kurz vor dem Serverumzug einen weiteren Durchgang, der nur die Änderungen übernimmt.

Parameter –delete2 sorgt dafür, dass Mails die zwischen 2 Synchronisations-Läufen von Server 1 gelöscht wurden, auch auf Server 2 entfernt werden.

Am Ende sendet das Script eine Mail zur Benachrichtigung.

#!/bin/bash

USR='username'
PWD='password'
imapsync --host1 server1.com --user1 $USR --password1 $PWD --host2 server2.com --user2 $USR --password2 $PWD --delete2
echo OK | mail -s "Mailsync $USR completed!"  notify@mymail.de

Mehr zu IMAPSync