No renderer 'odt' found for mode 'odt'

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.

» imapsync Docker