Archiv/imapsync

Archivierte Anleitung

Dieser Artikel wurde archiviert. Das bedeutet, dass er nicht mehr auf Richtigkeit überprüft oder anderweitig gepflegt wird. Der Inhalt wurde für keine aktuell unterstützte Ubuntu-Version getestet. Wenn du Gründe für eine Wiederherstellung siehst, melde dich bitte in der Diskussion zum Artikel. Bis dahin bleibt die Seite für weitere Änderungen gesperrt.

Zum Verständnis dieses Artikels sind folgende Seiten hilfreich:

  1. Ein einzelnes Paket installieren

  2. Ein Terminal öffnen

Inhaltsverzeichnis
  1. Installation
  2. Verwendung
      1. Bearbeiten von Nachrichten
    1. Beispiele
    2. Massenmigration
  3. Problembehebung
    1. Kompatibilität
  4. Links

imapsync_logo.png imapsync 🇬🇧 ist ein kommerzieller IMAP-Client für die Shell, welcher das inkrementelle und rekursive Kopieren von E-Mailnachrichten zwischen zwei Servern vereinfacht. Es ist sehr gut für die Datenmigration bei Serverumzügen oder einfach zum Sichern der eigenen Mailbox geeignet. Das Programm basiert auf Perl und ist mit nahezu allen bekannten IMAP-Servern kompatibel.

Trotz seines Namens ist imapsync keine Software für eine 2-Wege-Sychronisation: Es wird nur vom Quell- auf den Zielserver kopiert. Bei anderen Wünschen kann man sich mit den Programmen OfflineIMAP 🇬🇧 (offlineimap 🇬🇧) und isync 🇬🇧 (isync 🇬🇧) beschäftigen.

Installation

Seit Ubuntu 11.10 ist imapsync nicht mehr in den offiziellen Paketquellen enthalten. Daher muss man das Paket imapsync_1.315+dfsg-1_all.deb ⮷ manuell herunterladen und installieren [1]. Diese Version enthält Bugs wie Authentifizierungsfehler bei SSL Verbindungen, daher ist die aktuellste Version zu empfehlen.

Hinweis!

Fremdsoftware kann das System gefährden.

Fortgeschrittene finden auf GitHub 🇬🇧 weitere Informationen, um die aktuellste Version aus dem Quellcode zu erstellen.

Verwendung

Nach der Installation kann imapsync über ein Terminal [2] mit dem folgenden Kommando gestartet werden:

imapsync OPTIONEN 

Nachfolgend sind die wichtigsten Verbindungsoptionen aufgelistet. Nachdem man das Kommando um diese Parametern ergänzt hat, sollte man zusätzlich die Option --justlogin anfügen, um zu testen, ob sich imapsync an beiden Servern erfolgreich anmeldet. Sollte dies der Fall sein, kann man mit den Parametern zum Kopieren fortfahren. Tritt während der Anmeldung ein Fehler auf, bitte den Abschnitt Kompatibilität beachten!

Parameter für den Quellserver
Parameter Beschreibung
--host1 <IP oder Domain> Quell-IMAP-Server
--port1 Port am Quellserver
--user1 <username> und --password1 <passwd> Login für den Quellserver
--authmech1 <PLAIN|LOGIN|CRAM-MD5|...> Authentifizierungsmethode Quellserver (meist PLAIN, dann aber ungesichert)
--ssl1 Nutzt SSL für die Serververbindung
--tls1 Nutzt TLS für die Serververbindung
Parameter für den Zielserver
--host2 <IP oder Domain> Ziel-IMAP-Server
--port2 Port am Zielserver
--user2 <username> und --password2 <passwd> Login für den Zielserver
--authmech2 <PLAIN|LOGIN|CRAM-MD5|...> Authentifizierungsmethode Zielserver (meist PLAIN, dann aber ungesichert)
--ssl2 Nutzt SSL für die Serververbindung
--tls2 Nutzt TLS für die Serververbindung

Nachdem die Anmeldung geglückt ist, können nun die Parameter für den Kopiervorgang angehängt werden. Nachfolgend wieder eine Übersicht:

Parameter für den Kopiervorgang (Auswahl)
Parameter Beschreibung
--folder <name> Ordner inklusive enthaltener Mails kopieren*
--folderrec <name> Ordner inklusive enthaltener Mails und Unterordner kopieren (Rekursiv)*
--include <RegEx> Alle Ordner, die auf das Muster <RegEx> passen, werden kopiert*
--exclude <RegEx> Alle Ordner, die auf das Muster <RegEx> passen, werden nicht kopiert*
--prefix1 und --prefix2 Legt das IMAP-Prefix für Quell- und Zielserver fest
--delete Löscht nach erfolgreichem Transfer Nachrichten vom Quellserver
--delete2 Löscht Nachrichten vom Zielserver, die nicht auf dem Quellserver vorhanden sind
--justfolders Legt nur die Ordner auf dem Zielserver an

* diese Argumente können mehrmals verwendet werden

Bearbeiten von Nachrichten

imapsync erlaubt auch das automatische Bearbeiten von Nachrichten und ihrer Header während des Kopiervorgangs. Hierzu wird die Option --regexflag genutzt, um die Flags einer Nachricht zu entfernen oder hinzuzufügen - respektive die Option --regexmess, um Bestandteile der Nachricht selbst zu verändern.

So werden mit der Option --regexflag 's/"Seen"//g' alle Nachrichten als ungelesen markiert, oder mit --regexflag 's/"Junk"//g' die Junkflags entfernt.

Beispiele

Massenmigration

Um auch bei vielen zu migrierenden Mailboxen den Überblick zu behalten, sollte man den Prozess am besten automatisieren. Dazu legt man eine Textdatei mit folgendem Muster Quellbenutzer;Passwort;Zielbenutzer;Passwort an:

user001;password001;user001;password001
user002;password002;user002;password002
user003;password003;user003;password003
user004;password004;user004;password004
user005;password005;user005;password005

Diese Datei wird als mailboxes.txt abgespeichert. Nun kann mit folgendem Befehl die komplette Migration vorgenommen werden:

{ while IFS=';' read  u1 p1 u2 p2; do 
  imapsync --host1 foo.example.org --user1 "$u1" --password1 "$p1" --authmech1 PLAIN \
           --host2 bar.example.org --user2 "$u2" --password2 "$p2" --authmech2 PLAIN \
 done ; } < mailboxes.txt 

Problembehebung

Kompatibilität

imapsync ist, wie bereits oben erwähnt, mit fast allen IMAP-Servern kompatibel. Trotzdem gibt es Ausnahmen aufgrund falscher Implementierungen oder falscher/unterschiedlicher Konfiguration der Server.

Bekannte Probleme gibt es mit diesen Mailservern: