ubuntuusers.de

Hinweis: Dies ist ein statischer Snapshot unseres Wikis vom 25. März 2013 und kann daher nicht bearbeitet werden. Der aktuelle Artikel ist unter wiki.ubuntuusers.de zu finden.

imapsync

Dieser Artikel wurde für die folgenden Ubuntu-Versionen getestet:

Zum Verständnis dieses Artikels sind folgende Seiten hilfreich:

imapsync_logo.png Imapsync {en} ist ein IMAP-Client für die Shell, welcher das inkrementelle und rekursive Kopieren von E-Mailnachrichten zwischen zwei Servern vereinfacht. Es ist also 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.

Hinweis:

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 {en} (offlineimap) und isync {en} (isync) beschäftigen.

Installation

Ab Ubuntu 11.10

Ab Ubuntu 11.10 ist Imapsync nicht mehr in den Quellen vorhanden. Es muss zuerst manuell ein .deb-Paket erstellt werden, um die Installation erfolgreich auszuführen.

Zuerst müssen einige Werkzeuge installiert [1] werden, um das Erstellen des Pakets zu ermöglichen:

  • build-essential

  • devscripts

  • debhelper

  • cdbs

  • libdigest-hmac-perl

  • libterm-readkey-perl

  • libio-socket-ssl-perl

  • libdate-manip-perl

  • libmail-imapclient-perl

Wiki/Vorlagen/Installbutton/button.png mit apturl

Paketliste zum Kopieren:

sudo apt-get install build-essential devscripts debhelper cdbs libdigest-hmac-perl libterm-readkey-perl libio-socket-ssl-perl libdate-manip-perl libmail-imapclient-perl  

sudo aptitude install build-essential devscripts debhelper cdbs libdigest-hmac-perl libterm-readkey-perl libio-socket-ssl-perl libdate-manip-perl libmail-imapclient-perl  

Nun wird der Quellcode geladen und extrahiert.

  1. Arbeitsverzeichnis erstellen:

    mkdir ~/tmp; cd ~/tmp 
  2. Quellcode vom Server holen und entpacken:

    dget -xu http://de.archive.ubuntu.com/ubuntu/pool/universe/i/imapsync/imapsync_1.315+dfsg-1.dsc 
  3. In Imapsync Verzeichnis wechseln:

    cd imapsync-1.315+dfsg 
  4. Suffix +local dem Versionsstring anfügen:

    dch -l +local 

    Nun öffnet sich der Editor, der über die Umgebungsvariable EDITOR, bzw. über das Alternativen-System festgelegt ist, mit der Changelog-Datei des heruntergeladenen imapsync Quellpakets.
    Die ersten fünf Zeilen sollten nun syntaktisch so ausehen:

    1
    2
    3
    4
    5
    imapsync (1.315+dfsg-1+local1) precise; urgency=low
    
      * rebuild
    
     -- simon <simon@test3.vm.home.local>  Tue, 07 Aug 2012 19:04:34 +0200
    

    Hinweis:

    Es muss eine Beschreibung hinter dem * eingegeben werden, da dch sonst seine Arbeit verweigert. Die letzte Zeile passt man nach Wunsch an.

  5. Nun muss nur noch das Paket erstellt und installiert werden.

    1. Kompilieren und Packen:

      dpkg-buildpackage -us -uc 
    2. Installieren:

      sudo dpkg -i ../imapsync_1.315+dfsg-1local1_all.deb
      apt-get -f install 

Bis Ubuntu 11.04

Imapsync ist bis Ubuntu 11.04 in den offiziellen Paketquellen vorhanden und kann daher über die Paketverwaltung installiert [1] werden:

  • imapsync (universe)

Wiki/Vorlagen/Installbutton/button.png mit apturl

Paketliste zum Kopieren:

sudo apt-get install imapsync 

sudo aptitude install imapsync 

Verwendung

Nach der Installation kann Imapsync über ein Terminal [2] mit dem Kommando imapsync gestartet [3] werden.

Parameter

Nachfolgend sind die wichtigsten Verbindungsparameter aufgelistet. Nachdem man das Kommando mit diesen Parametern bestückt hat, sollte man 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 über die wichtigsten:

Parameter für den Kopiervorgang
Parameter Beschreibung
--folder <name> Ordner inklusive enthaltene Mails kopieren. *
--folderrec <name> Ordner inklusive enthaltene 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 Nachrichten vom Quellserver nach erfolgreichem Transfer.
--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 dem Befehl --regexflag 's/"Seen"//g' alle Nachrichten als ungelesen markiert, oder mit --regexflag 's/"Junk"//g' die Junkflags entfernt.

Beispiele

Situation 1: Es soll die komplette Mailbox auf einen anderen Server umgezogen werden.

imapsync --host1 foo.example.com --user1 foobar --password1 secret --authmech1 PLAIN \
         --host2 bar.example.com --user2 barfoo --password2 secret --authmech2 PLAIN \
         --delete 

Situation 2: Es soll die Inbox inkl. Unterordner eines Benutzers auf einen anderen Server gesichert werden. Die Ordner Spam und Privat sollen nicht übertragen werden.

imapsync --host1 foo.example.com --user1 foobar --password1 secret --authmech1 PLAIN \
         --host2 bar.example.com --user2 barfoo --password2 secret --authmech2 PLAIN \
         --exclude 'Privat' --exclude 'SPAM' 

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 an: Quellbenutzer;Passwort;Zielbenutzer;Passwort

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

Diese wird als mailboxes.txt abgespeichert. Nun kann mit folgendem Einzeiler 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 

Kompatibilität

Imapsync ist, wie bereits oben erwähnt mit fast allen IMAP-Servern kompatibel. Trotzdem gibt es Ausnahmen aufgrund falscher Implementierungen oder falschen/unterschiedlichen Konfigurationen der Server.

Bekannte Probleme gibt es mit diesen Mailservern:

ubuntuusers.local › Wikiimapsync