IMAP-Postfächer synchronisieren mit OfflineIMAP

Aus LinuxUser 12/2011

IMAP-Postfächer synchronisieren mit OfflineIMAP

© Linder6580, sxc.hu

Stiller Postbote

Ob Mail-Backup oder Synchronisation zwischen verschiedenen Accounts – OfflineIMAP erledigt diese Aufgaben gezielt, effizient und auf Wunsch vollautomatisch.

Viele Anwender setzen heute auf IMAP, um ihre E-Mails zu verwalten. Kein Wunder, denn das Protokoll birgt einiges an Komfort: Nachrichten und Ordner liegen im Gegensatz zum veralteten POP-Protokoll zentral auf dem Server, wodurch jeder Client inklusive Smartphone und Tablet Zugriff auf dieselben Nachrichten hat, und das sogar gleichzeitig.

IMAP ermöglicht darüber hinaus das serverseitige Filtern [1] und Push-E-Mail. Doch die Sache hat einen Haken: Das Protokoll geht davon aus, dass der Anwender beim Arbeiten mit den Nachrichten ständig online bleibt. Dank Flatrate ist das heutzutage zwar eher die Regel als die Ausnahme. Dennoch gibt es Situationen, in denen ein Offline-Zugriff auf das Postfach optimal wäre: Unterwegs, im Ausland, oder ganz einfach bei Ausfall des Netzwerks.

Zwar legen die meisten Mailprogramme einen lokalen Cache an, auf den sie bei Problemen zurückgreifen, aber das funktioniert nicht immer zuverlässig [2]. Zudem steht dieses Archiv dann nur auf genau einem Client in einem bestimmten Programm bereit – Firmen oder Anwender mit mehreren Rechnern schauen in die Röhre.

Ein weiteres Problem stellt die falsche Sicherheit dar, in der sich die Nutzer großer Freemail-Anbieter häufig wiegen. Große Postfächer mit nahezu unbegrenztem Speicherplatz in der Cloud laden dazu ein, alles im Netz zu speichern. Um das Backup kümmern sich die Anbieter, und komfortabel ist es obendrein.

Doch wer seine gesamte virtuelle Korrespondenz in die Hände eines einzigen Anbieters legt, der geht ein Risiko ein: Datenverluste und Einbrüche in Konten lassen sich nie hundertprozentig ausschließen. Gerade für Firmen stellen verloren gegangene E-Mails ein Problem dar, sind sie doch gesetzlich zum Aufbewahren der elektronischen Post verpflichtet.

Eine Lösung des Dilemmas besteht darin, sich einen Mailserver am heimischen Router zu installieren und alle E-Mails dorthin weiterzuleiten. Doch das verursacht nicht nur großen Aufwand, sondern erweist sich bei herkömmlichen Internetzugängen und ihren dynamischen IP-Adressen schlicht als zu fehleranfällig.

Daher kommen häufig Programme zum Einsatz, mit denen man die E-Mails von entfernten Servern herunterladen und lokal einsortieren kann. Doch dieser Weg führt nur in eine Richtung – lokale Änderungen spielen diese Tools meist nicht zurück. An ein effektives Offline-Arbeiten mit IMAP ist daher nicht zu denken.

Rettung naht

Genau hier kommt OfflineIMAP [3] ins Spiel. Das Programm macht im Grunde genommen genau das, was der Name suggeriert: Es stellt den Inhalt eines IMAP-Kontos offline auf dem eigenen Rechner bereit – sei es fürs Backup oder um die Nachrichten auf diesem Wege im Mailclient zu bearbeiten.

Das funktioniert im Gegensatz zu anderen Tools aber in beide Richtungen: Lokal gelöschte E-Mails löscht OfflineIMAP beim nächsten Durchlauf am Server, und neu eintreffende Post lädt es vom Server automatisch nach. Dabei kopiert OfflineIMAP nicht einfach jedes Mal stupide Ordner für Ordner, sondern gleicht den Inhalt intelligent ab, sprich: Es überträgt nur die Daten, die sich im Vergleich zum vorherigen Start geändert haben.

Mit OfflineIMAP synchronisieren Sie aber nicht nur komplette Postfächer, sondern übertragen auch gezielt nur einzelne Ordner. Dabei lässt sich das Programm entweder auf einem einzelnen Client einrichten oder aber auf einem zentralen Server installieren. Besonders beliebt ist das Tool beispielsweise bei den Anwendern von Mutt, einem konsolenbasierten Mailprogramm.

Raus aus der Cloud

Die Installation von OfflineIMAP gestaltet sich angenehm einfach. Auf unserem Testsystem, einem Notebook mit der aktuellen Version 11.10 von Ubuntu, genügte das Kommando

$ sudo apt-get install offlineimap

um das Programm zu installieren. Alternativ greifen Sie auf einen Paketmanager mit grafischer Oberfläche zurück.

Die Konfiguration gestaltet sich sehr einfach. Erstellen Sie für einen ersten Test eine Datei namens .offlineimaprc in Ihrem Home-Verzeichnis. Dort tragen Sie den die Daten für das Synchronisieren ein. Listing 1 zeigt ein Beispiel, das ein Postfach bei Google Mail auf den heimischen PC sichert.

Listing 1

[General]
accounts = googlemail
maxsyncaccounts = 1
[Account googlemail]
localrepository = googlemail-local
remoterepository = googlemail-remote
[Repository googlemail-local]
type = Maildir
localfolders = ~/googlemail
[Repository googlemail-remote]
type = Gmail
remoteuser = Name@googlemail.com
remotepass = Passwort

Die Datei .offlineimaprc enthält persönliche Daten wie Benutzernamen und Passwörter. Denken Sie daher nach dem ersten Speichern daran, mittels chmod 600 .offlineimaprc anderen Benutzern den Zugriff darauf zu verweigern. Ansonsten besteht die Gefahr, dass sich Dritte Zugriff auf Ihr Postfach verschaffen.

In der Konfiguration definieren Sie in der Sektion General einen Account namens googlemail, das Sie synchronisieren möchten, und legen zudem fest, dass die Software maximal ein Konto zur gleichen Zeit abgleicht, was die Bandbreite des lokalen Internetzugangs schont. Dem Google-Mail-Konto weisen Sie im Bereich Account zwei Repositories zu. Dahinter verbergen sich die Ordner zum Speichern der zum Konto gehörigen E-Mails.

Als lokales Repository – also als Ziel, zu dem OfflineIMAP die Mails überträgt – dient im Beispiel der Ordner googlemail im Home-Verzeichnis. Dort speichert OfflineIMAP die Nachrichten im Maildir-Format zum Einsatz, wie es auch auf vielen Servern zum Einsatz kommt. Die eigentlichen Zugangsdaten definieren Sie im letzten Abschnitt. Neben dem Servertyp sind der Benutzername und das Passwort obligatorisch. Letzteres dürfen Sie aus Sicherheitsgründen weglassen: Dann fragt OfflineIMAP Sie bei jedem Start danach.

Im Beispiel für Google Mail ist der Benutzername in Kombination mit der entsprechenden Domain angegeben. Dabei handelt es sich jedoch nicht um eine Vorgabe von OfflineIMAP, sondern vielmehr um eine Eigenheit des Anbieters. Ähnlich verhält es sich beispielsweise bei GMX: Auch hier müssen Sie sich immer unter Angabe ihrer vollständigen Mail-Adresse authentifizieren. Kleinere Provider oder firmeninterne IMAP-Server verlangen hingegen oft nur einen einfachen Benutzernamen – tritt bei der Verbindungsaufnahme also einen Fehler auf, überprüfen Sie nochmals, in welcher Schreibweise Ihr Provider die Daten erwartet.

Im Test gab sich OfflineIMAP übrigens pingelig, was die Groß- und Kleinschreibung in der Konfigurationsdatei betrifft – die Namen der Abschnitte für Konten und Repositories sowie die Angabe Maildir müssen zwingend mit einem Großbuchstaben beginnen, sonst verweigert die Software den Dienst. Haben Sie diese Hürde gemeistert, steht das Programm für den ersten Durchlauf bereit.

Das erste Mal

Sie Starten die Synchronisation mit einem einfachen offlineimap auf der Kommandozeile. Das Programm verbindet sich daraufhin mit dem konfigurierten IMAP-Server und lädt sämtliche Nachrichten und Ordner herunter (Abbildung 1). Je nach Anbindung und Größe des Postfach dauert dies wenige Sekunden bis hin zu mehreren Stunden.

Keine Sorge: Ist das Postfach einmal abgeglichen, gehen weitere Durchläufe wesentlich schneller vonstatten, da das Programm dann nur noch die geänderten Daten überträgt. Um nicht den Überblick zu verlieren, legt die Software zu diesem Zweck das Verzeichnis .offlineimap an, in dem sie den Status des Postfachs speichert. Das Verzeichnis sollten Sie daher auf keinen Fall löschen.

Abbildung 1: OfflineIMAP lädt beim ersten Synchronisieren eines Mail-Kontos alle Nachrichten vom Server auf den lokalen Rechner.

Abbildung 1: OfflineIMAP lädt beim ersten Synchronisieren eines Mail-Kontos alle Nachrichten vom Server auf den lokalen Rechner.

Bereits während der Synchronisation haben Sie die Möglichkeit, auf die Nachrichten zu zugreifen. Am einfachsten klappt das für einen ersten Test mit Mutt. Das Kommando

$ mutt -f ~/googlemail/INBOX/

zeigt die bereits geladenen E-Mails im Posteingang, und dementsprechend öffnet der Befehl

$ mutt -f '~/googlemail/[Gmail].Alle Nachrichten'

den Ordner Alle Nachrichten. Das Beispiel zeigt eine Besonderheit auf: Google Mail bietet Ordnernamen in der jeweiligen Landessprache an. Benutzen Sie den Dienst in englischer Sprache, so heißt es beispielsweise All Mail statt Alle Nachrichten.

Um die Fähigkeiten zum Synchronisieren von OfflineIMAP unter Beweis zu stellen, schicken Sie sich am besten selbst eine E-Mail oder verschieben beziehungsweise löschen eine Nachricht, wahlweise lokal oder per Webinterface des jeweiliges Anbieters.

Ein erneuter Aufruf von offlineimap auf der Kommandozeile sollte nun wesentlich schneller vonstatten gehen als der initiale Durchlauf und die Modifikationen auf den jeweils anderen Server replizieren. Sofern das funktioniert, haben Sie OfflineIMAP erfolgreich zum Sichern des IMAP-Kontos eingerichtet.

Ständiger Begleiter

Bei Backups gilt: Je öfter, desto besser, und je mehr Handarbeit dafür anfällt, umso höher die Wahrscheinlichkeit, dass niemand sie erledigt. Aus diesem Grund sollten Sie nach erfolgter Konfiguration das Tool so einrichten, dass es regelmäßig startet, beispielsweise als so genannter Cronjob.

Unter Ubuntu und den meisten anderen Distributionen geben Sie dazu auf der Kommandozeile einfach crontab -e ein, woraufhin sich ein Editor öffnet, mit dem Sie die so genannte Crontab bearbeiten. Das deutsche Ubuntuusers-Wiki hält ausführliche Erklärungen zur Syntax und Funktionsweise bereit [4]. Um beispielsweise 15 Minuten nach jeder vollen Stunde das Synchronisieren zu starten, genügt die Zeile:

15 */1 * * *    /usr/bin/offlineimap -u Quiet

Der Parameter -u Quiet sorgt dafür, dass das Programm nur Fehlermeldungen ausgibt – ansonsten würde Ihnen Cron nach jedem Durchlauf eine E-Mail senden. Sollte eine Synchronisation einmal länger dauern, sodass sich die automatischen Starts überlappen, dann achtet OfflineIMAP selbst darauf, nicht mehr als einmal zur gleichen Zeit aktiv zu sein. Es bricht in diesem Fall den zweiten Start mit einer Fehlermeldung ab.

Falls Ihnen die Cron-Variante nicht zusagt, beherrscht OfflineIMAP alternativ auch einen so genannten Daemon-Mode, bei dem es ständig im Hintergrund aktiv bleibt. Genauere Informationen dazu hält die Dokumentation bereit [5]. Wichtig bei jedem automatischen Start von OfflineIMAP: Das Passwort muss dazu in der Konfigurationsdatei vermerkt sein.

Mehrweg

Allerdings hilft das schönste Backup nichts, wenn im Fall der Fälle das Restore nicht klappt. Daher beherrscht OfflineIMAP neben dem Download von Nachrichten natürlich auch deren Upload. Das hilft zum einen für den Fall, dass der Provider sämtliche Daten verliert, und zum anderen, wenn ein Wechsel zu einem anderen Anbieter ins Haus steht, zu dem Sie die Nachrichten mitnehmen möchten.

Um Ihr bestehendes Postfach mit einem anderen IMAP-Server zu synchronisieren, definieren Sie diesen einfach als lokales Repository, also als Zielsystem. Ein Beispiel dazu zeigt Listing 2 gezeigt. Dort ist als Servertyp beide Male IMAP statt Gmail angegeben, weswegen Sie mittels remotehost zudem den Servername konfigurieren müssen.

Wichtig ist die Direktive ssl, die dafür sorgt, dass die Software die Verbindung verschlüsselt. Unverschlüsselte Verbindungen stellen ein hohes Sicherheitsrisiko dar und werden von den meisten Anbietern ohnehin deaktiviert. Da manche Mailprovider zudem die Anzahl gleichzeitiger Verbindungen limitieren, weisen Sie OfflineIMAP mit maxconnections an, nur eine Verbindung gleichzeitig zu öffnen.

Listing 2

[General]
accounts = privat
maxsyncaccounts = 1
[Account privat]
localrepository = ProviderNeu
remoterepository = ProviderAlt
[Repository ProviderNeu]
type = IMAP
remotehost = mail.Provider.Neu
remoteuser = NameNeu
remotepass = PasswortNeu
ssl = yes
maxconnections = 1
[Repository ProviderAlt]
type = IMAP
remotehost = mail.Provider.Alt
remoteuser = NameAlt
remotepass = PasswortAlt
ssl = yes
maxconnections = 1

Ein beherzter Aufruf von offlineimap auf der Kommandozeile führt dazu, dass das Programm den Inhalt des alten Postfachs in das neue spiegelt, und nach einiger Zeit liegt beim neuen Provider ein exakte Kopie des Postfachs. Auch in diesem Fall würde OfflineIMAP bei einem erneuten Aufruf nur noch die Mails übertragen, die sich geändert haben.

Im Falle eines Umzugs können Sie damit beispielsweise eine Woche vor dem eigentlichen Termin den Abgleich starten und kurz vorher noch einmal die bis dahin geänderten Nachrichten übertragen. Neben der Backup-Funktion eignet sich obige Konfiguration übrigens auch perfekt dafür, um zwei Server auch dauerhaft miteinander abzugleichen – beispielsweise das Büro-Postfach mit dem privaten Server zu Hause.

Mailclients

Die Offline-Funktionalität haben Sie vorhin schon kurz am Beispiel von Mutt gesehen, doch der Kommandozeilen-Mailer ist zugegebenermaßen nicht jedermanns Sache. Allerdings hapert es bei vielen anderen Mailclients mit der nötigen Support des Maildir-Verzeichnisses – während Thunderbird gar keine Unterstützung mitbringt, raten die OfflineIMAP-Entwickler von KMail ab, wogegen Evolution nach deren Erfahrungen funktioniert [3].

Die beste Lösung, einen beliebigen Mailclient anzubinden, liegt in der Installation eines lokalen IMAP-Servers. Eine detaillierte Beschreibung würde den Rahmen dieses Artikels zwar sprengen, hingewiesen sei aber auf Dovecot: Er lässt sich nicht nur schnell und einfach installieren, sondern zudem auch noch leicht zu warten. Der Befehl

# apt-get install dovecot-imapd

auf der Kommandozeile stellt eine brauchbare Konfiguration bereit, die es jedem lokale Nutzer ermöglicht, sich anzumelden. Um den Server mit Mails zu versorgen, greifen Sie wiederum auf das Beispiel aus Listing 2 zurück und passen es entsprechend an (remotehost = localhost beim lokalen Repository).

Mehrwert

Die hier gezeigten Beispiele dienen nur zum Einstieg ins Programm, denn neben der Pflicht beherrscht OfflineIMAP auch die Kür: So erstellt es auf Wunsch automatisch eine Mailbox-Liste für Mutt, erledigt die Synchronisation mehrerer Konten gleichzeitig und beherrscht neben IMAP IDLE auch das schnelle Synchronisieren, das auf den Abgleich von bestimmten Flags und Markierungen verzichtet.

Praktisch ist auch die Funktion, um nur bestimmte Ordner zu synchronisieren und diese auf Wunsch beim Übertragen umzubenennen. Neben der Dokumentation installiert OfflineIMAP unter /usr/share/doc/offlineimap/examples auch kommentierte Konfigurationsdateien, die den Funktionsumfang anhand von Beispielen ausführlich erläutern. Möchten Sie das Tool dauerhaft einsetzen, empfiehlt sich eine eingehende Lektüre dieser Anleitung. 

Glossar

Maildir

Konzept zum Speichern von E-Mails als einzelne Dateien in einem klar definierten Satz von Ordnern nach einem System, dass die Eindeutigkeit der Dateinamen sichert und so das Locking von Mailboxen überflüssig macht.

Infos

[1] Mailfilter Sieve: Florian Effenberger, “Versiebt”, ADMIN 05/2011, S. 114, http://tinyurl.com/admin0511-sieve

[2] IMAP-Clients im Vergleich: Florian Effenberger, “Postlagernd”, Linux-Magazin 02/2010, S. 52, http://tinyurl.com/lm0210-imap

[3] Unterstützte Mailclients: http://tinyurl.com/lu1211-oifaq

[4] Cron-Anleitung: http://wiki.ubuntuusers.de/Cron

[5] Online-Doku zu OfflineIMAP: http://tinyurl.com/lu1211-oidoc

Der Autor

Florian Effenberger engagiert sich seit vielen Jahren ehrenamtlich für freie Software. Er ist Gründungsmitglied und Mitglied des Steering Committee der Document Foundation. Zuvor war er fast sieben Jahre im Projekt OpenOffice.org aktiv, zuletzt als Marketing Project Lead. Daneben schreibt er regelmäßig für zahlreiche deutsch- und englischsprachige Publikationen.

LinuxUser 12/2011 KAUFEN
EINZELNE AUSGABE
ABONNEMENTS
TABLET & SMARTPHONE APPS
E-Mail Benachrichtigung
Benachrichtige mich zu:

Hinweis: Dieser Artikel ist älter als ein Jahr, enthaltene Informationen sind möglicherweise veraltet.

2 Kommentare
Älteste
Neuste Beste Bewertung
Inline Feedbacks
Alle Kommentare anzeigen
Linuxnoob
11 Jahre her

Hallo, ich weiß der Artikel ist schon alt, aber für Offlineimap immer noch aktuell der beste. Ich habe Offlineimap auch zum laufen bekommen, aber ich bekomme immer folgende Fehlermeldung: Creating folder /[RemoteZugang] ERROR: Creating folder on repository RemoteZugang Folder ‘/'[RemoteZugang] could not be created. Server responded: (‘NO’, [‘unsupported folder name’]) Ich habe RemoteZugang in der Datei offlineimaprc unter dem Punkt remoterepository = RemoteZugang deklariert. Das ganze soll ein Backup von meinem gmx-account machen. Die Mails sind auch alle offline verfügbar, nur das mit den [mbnames] enabled = yes filename = ~/Mutt/muttrc.mailboxes header = “mailboxes ” peritem = “+%(accountname)s/%(foldername)s” sep =… Mehr »

Jörg Reuter
10 Jahre her
Reply to  Linuxnoob

In der Anleitung ist ein Fehler. Das [General] in der Datei .offlineimaprc muss (zumindest bei mir mit Raspbian) klein geschrieben werden.

Nach oben