[[Vorlage(archiviert )]] {{{#!vorlage Wissen [:Paketinstallation_DEB: Ein einzelnes Paket installieren] [:Terminal: Ein Terminal öffnen] }}} [[Inhaltsverzeichnis()]] [[Bild(imapsync_logo.png, x60, left)]] [https://imapsync.lamiral.info/ imapsync] {en} 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 [https://www.offlineimap.org/ OfflineIMAP] {en} ([packages:offlineimap:] {en}) und [sourceforge2:isync:] {en} ([packages:isync:] {en}) beschäftigen. =Installation= Seit [:Oneiric:Ubuntu 11.10] ist imapsync nicht mehr in den offiziellen Paketquellen enthalten. Daher muss man das Paket [http://old-releases.ubuntu.com/ubuntu/pool/universe/i/imapsync/imapsync_1.315+dfsg-1_all.deb imapsync_1.315+dfsg-1_all.deb] {dl} manuell herunterladen und installieren [1]. Diese Version enthält Bugs wie Authentifizierungsfehler bei SSL Verbindungen, daher ist die aktuellste Version zu empfehlen. [[Vorlage(Fremd, Software)]] Fortgeschrittene finden auf [github:imapsync/imapsync:GitHub] {en} 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: {{{#!vorlage Befehl 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 [#Kompatibilitaet Kompatibilität] beachten! {{{#!vorlage Tabelle < -4 tablestyle="width: 80%;" rowclass="titel"-3> Parameter für den Quellserver +++ Parameter Beschreibung +++ `--host1 ` Quell-IMAP-Server +++ `--port1` Port am Quellserver +++ `--user1 ` und `--password1 ` Login für den Quellserver +++ `--authmech1 ` Authentifizierungsmethode Quellserver (meist PLAIN, dann aber ungesichert) +++ `--ssl1` Nutzt SSL für die Serververbindung +++ `--tls1` Nutzt TLS für die Serververbindung +++ < -4 rowclass="titel"-3> Parameter für den Zielserver +++ `--host2 ` Ziel-IMAP-Server +++ `--port2` Port am Zielserver +++ `--user2 ` und `--password2 ` Login für den Zielserver +++ `--authmech2 ` 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: {{{#!vorlage Tabelle < -4 tablestyle="width: 80%;" rowclass="titel"-3> Parameter für den Kopiervorgang (Auswahl) +++ Parameter Beschreibung +++ `--folder ` Ordner inklusive enthaltener Mails kopieren^^(*)^^ +++ `--folderrec ` Ordner inklusive enthaltener Mails und Unterordner kopieren (Rekursiv)^^(*)^^ +++ `--include ` Alle Ordner, die auf das Muster `` passen, werden kopiert^^(*)^^ +++ `--exclude ` Alle Ordner, die auf das Muster `` 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== * Es soll eine komplette Mailbox auf einen anderen Server übertragen werden: {{{#!vorlage Befehl imapsync --host1 foo.example.com --user1 foobar --password1 secret --authmech1 PLAIN \ --host2 bar.example.com --user2 barfoo --password2 secret --authmech2 PLAIN \ --delete }}} * Es soll die Inbox eines Benutzers inkl. Unterordner auf einen anderen Server gesichert werden. Die Ordner ''Spam'' und ''Privat'' sollen nicht übertragen werden: {{{#!vorlage Befehl 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 `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: {{{#!vorlage Befehl { 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: * [https://www.mailenable.com/ Mailenable 1.5.x] {en} - [[Bild(Wiki/Icons/windows_users.png,16x16)]] * [wikipedia_en:DBMail_IMAP_and_POP3_server:DBMail 0.9, 2.0.7] - [[Bild(Wiki/Icons/tux.png,16x16)]] * [https://www.imailserver.com/ Imail 7.04] {en} - [[Bild(Wiki/Icons/windows_users.png,16x16)]] * [wikipedia_en:MDaemon:] - [[Bild(Wiki/Icons/windows_users.png,16x16)]] (nur als Zielserver fehlerhaft; fehlerhafte Implementierung von APPEND) * [:Archiv/Zarafa:Zarafa] - [[Bild(Wiki/Icons/tux.png,16x16)]] (nur als Zielserver; Fehler beim Setzen des RECENT-Flags; Nachricht wird übersprungen) =Links= * [https://imapsync.lamiral.info/ Projektseite] {en} * [github:imapsync/imapsync:Quellcode] {en} * [https://raymii.org/s/software/Nopriv-IMAP-backup.html NoPriv.py] {en} - IMAP-Konto als lokales HTML-Archiv sichern * [:Serverdienste:] {Übersicht} Übersichtsseite #tag: Internet, Server, Kommunikation, unfreie Software, Email