Der nach dem englischen Wort für Taubenschlag benannte überaus populäre IMAP-Server erreicht die Version 2.2. Zwei neue Extensions und ein Rewrite geben den Dovecot-Befürwortern Futter.
Knapp drei Jahre nach dem flüggen Dovecot 2.0 [1] steht die Release der Version 2.2 ins Haus. Das bringt eine Fülle an Änderungen, Verbesserungen und Erweiterungen mit sich, von denen drei besonders ins Auge fallen: die Unterstützung der Lemonade-Extensions, die Implementierung des so genannten Special-Use-Kommandos und ein kompletter Rewrite des Dsync-Befehls.
Unverfügbar
Ein geheimes Naturgesetz sorgt offenbar dafür, dass sich der Funktionsumfang eines Mobiltelefons und die Verfügbarkeit der dafür notwendigen Stromversorgung in stetem Ungleichgewicht befinden. Einige Nutzer begegnen diesem Umstand, indem sie Pre-Smartphone-Geräte einsetzen und diese Beschränkung zur freiwilligen Askese erklären. Die Vertreter der anderen Fraktion bauen bessere Akkus ein, tragen Ersatzbatterien im Gepäck und zeichnen sich durch eine gewisse Affinität zu Statistik-Apps für Akkus aus.
Beiden hilft Dovecot, indem es in Version 2.2 die Lemonade-Extensions fast vollständig implementiert. Diese Erweiterungen sind speziell für “eingeschränkte Clients” gedacht. Das dürfte alle mobilen Nutzer freuen, denn unter diesem Begriff summieren die Autoren des zugehörigen RFC 5550 [2] nicht nur die stolzen Besitzer von Smartphones. Vielmehr schließt er auch Laptop-Nutzer ein, die auf Reisen sind und deren Internetanbindung etwa wegen eines Satelliten-Uplinks sehr hohe Latenzen aufweist.
Herausgekommen ist am Ende ein ganzes Bündel an Erweiterungen, die – protokollübergreifend – Ressourcen beim Verfassen und Verarbeiten von E-Mails sparen, wo es nur geht. Und dabei gehen sie wirklich gründlich vor. Die Lemonade-Erweiterungen beginnen beim Aufbau einer TLS-Session damit, dass sie eine komprimierende Verbindung einfordern, um den Datentransport zu beschleunigen. Damit Server und Client nur Daten austauschen, die der Client im konkreten Anwendungsfall auch wirklich benötigt, sorgen diese Extensions dafür, dass der Server nur die tatsächlich erwünschten Informationen übermittelt.
Soll Dovecot eine bereits vorliegende Nachricht – eventuell erweitert – weiterleiten, sehen die Lemonade-Extensions dafür die Methode “Forward ohne Download” vor. Dabei übermittelt der Client dem Server nur die Differenz an Zeichen zwischen der neuen und der alten E-Mail. Die passenden Erweiterungen sorgen dafür, dass das eigentliche Bearbeiten der E-Mails auf dem Server geschieht.
Die Extensions helfen beim Extrahieren und Einfügen der MIME-Parts, die der Sender weiterverwenden will. Ist die Nachricht versandbereit, sorgt der Client dank der BURL-Erweiterung dafür, dass der SMTP-Server die Nachricht direkt vom IMAP-Server abholt. Das passiert inklusive sicherer SASL-Authentifizierung und verschlüsselten Transports und ohne den Umweg über den Client.
Die Ressourcen-intensive Verarbeitung findet auf dem Server statt, der meist keinen Mangel an Bandbreite, Speicher oder CPU-Power aufweist. Die Lemonade-Extensions lassen sich zudem problemlos in bestehende E-Mail-Landschaften integrieren. Das ist ein großer Vorteil, denn alte Clients nutzen auf diese Weise IMAP und SMTP-Dienst unverändert, während neuere Clients voll in den Genuss der Lemonade-Fähigkeiten kommen.
Hausgemachte Probleme
Ein Klassiker unter den Supportanrufen beim Betreiber eines Mailservers lautet etwa so: “Ich habe mit meinem Client XY eine Nachricht gesendet und jetzt finde ich sie im Webmailer Z nicht mehr. Auf dem Handy auch nicht. Und warum zeigt mein Client plötzlich so viele Ordner an? Sind »Sent« und »Gesendete Objekte« nicht dasselbe? Ah, da ist sie ja!”
Auch wenn es bisweilen Freude bereitet, anderen Menschen beim selbstständigen Denken zuzuhören, ist das kein Anlass sich überlegen zu fühlen. Vielmehr offenbart sich hier eines der fundamentalen IT-Probleme: Programme werden noch immer zu häufig von Experten für Experten entwickelt.
In der IMAP-Welt herrscht vor allem deshalb ein Ordnerchaos (Abbildung 1), weil die Entwickler des Protokolls in all den Jahren nicht daran dachten, dem Client zu zeigen, welche Ordner für welchen Gebrauch bestimmt sind. Wäre dies der Fall, könnte der Mailclient die dem User bekannten Ordnernamen behalten und sich einfach dynamisch an die Gegebenheiten auf dem Server anpassen – produkt- und sprachübergreifend.

Abbildung 1: Typisches Bild für IMAP-Nutzer – hier in Thunderbird: Doppelt und dreifach angelegte Ordner, mitunter noch in verschiedenen Sprachen.
Erst als Vertreter von Vodafone beim Optimieren der Mail-Infrastruktur ihrem Frust und Ärger wegen der mit diesem Problem verbundenen Support- und Migrationsaufwände Luft machten, kam Bewegung in die Angelegenheit. Recht zügig wurde eine neue IMAP-Erweiterung angeregt, die das IETF dann im März 2011 als “IMAP LIST Extension for Special-Use Mailboxes” im RFC 6154 [3] standardisierte. Seit Version 2.1 beherrscht Dovecot die nach dem Standard benannte Special-Use-Extension. Das Feature lässt sich über die Konfigurationsdatei »15-mailboxes.conf« schnell aktivieren (Listing 1) und über eine Telnet-Session mit dem IMAP-Server problemlos verifizieren.
Listing 1
Special-Use-Konfiguration
01 namespace inbox {
02 mailbox Drafts {
03 special_use = \Drafts
04 auto=subscribe
05 }
06 mailbox Junk {
07 special_use = \Junk
08 auto=subscribe
09 }
10 mailbox Trash {
11 special_use = \Trash
12 auto=subscribe
13 }
14 mailbox Sent {
15 special_use = \Sent
16 auto=subscribe
17 }
18 }
Fast unerwartet implementierte Microsoft diesen Standard auch in Outlook 2013, während Apple und Google lieber eigene, proprietäre Wege gehen. Der vollständige Einbau dieses Feature in Thunderbird steht noch aus (siehe Kasten “Mozilla Thunderbird”). Android-Nutzer stoßen hingegen auf E-Mail-Clients wie K-9 (Abbildung 2) oder Kaiten, die mit der Funktion zurechtkommen.

Abbildung 2: Der K-9-Client für Android beherrscht bereits das fortgeschrittene Special-Use-Feature.
Mozilla Thunderbird
Der einzige auf Linux, Windows und OS X verfügbare E-Mail-Client Mozilla Thunderbird musste in den vergangenen Monaten ziemlich viel einstecken. Die Ankündigung der Mozilla Foundation, Thunderbird ab Ende 2012 nicht mehr aktiv weiterzuentwickeln, sondern nur noch Extended Support Releases (ESR) zu veröffentlichen und Mitarbeiter abzuziehen, haben das Projekt nahezu verwaist zurückgelassen. Während die Foundation sich mit allen verfügbaren Kräften Firefox OS und weiteren neuen Feldern zuwendet, betreibt die so “beschenkte” Community Bestandsaufnahme und organisiert sich, um die Entwicklung wieder aufzunehmen.
Darunter leidet auch die Client-seitige Implementierung der Special-Use-Funktion. Die größten Hürden sind genommen, doch im Detail fehlen Korrekturen, die zudem noch die Wächter des Repository passieren müssen. Es ist ungewiss, wann genau das Special-Use-Feature in Thunderbird landet. Ein greifbarer Termin scheint die nächste Langzeitversion zu sein, die am 17. September 2013 erscheinen soll.
Kombiniert mit der Software Automx [4], die E-Mail-Konten nahezu automatisch konfiguriert, wird das Einrichten eines Mailkontos einfach, und die Anwender können sich auf ihr eigentliches Ziel konzentrieren – das Versenden und Empfangen von E-Mails.
Replikation ohne Komplikation
Aber auch für die Betreiber der Mailserver bringt Dovecot angenehme Neuerungen mit, die unter anderem in dem vollständigen Rewrite des Dsync-Kommandos stecken. Es dient dazu, Mailboxen zwischen zwei Dovecot-Servern zu spiegeln (Mirror) oder von einem auf den anderen Server zu sichern (Backup).
Das funktionierte bereits in der letzten Version, allerdings kam es unter bestimmten, schwierig einzugrenzenden Bedingungen zu Lock-Erscheinungen. Im Rahmen der alten Programmarchitektur entschied ein zentrales Gehirn, das auf Basis von zwei Worker-Prozessen auf eine Mailbox zugriff, was zu tun sei. Diese Architektur sorgte jedoch für eine unnötig komplexe Codebasis, die die Fehlersuche deutlich verkomplizierte. Jetzt verfügen beide abgleichenden Seiten jeweils über ein Gehirn, tauschen ihr lokales Wissen wechselseitig aus und sorgen auf diese Weise selbstständig für konsistente Zustände der Mailboxen.
Der Status einer Replikation lässt sich dabei sofort speichern. Beim nächsten Lauf setzt der Postmaster die Replikation mit dem Befehl »doveadm sync -s Zustands-String« an derselben Stelle wieder in Gang. Das ermöglicht nun auch inkrementelle Replikationen. Das Speichern des Zustands reduziert zugleich massiv den Netzwerkverkehr zwischen den replizierenden Instanzen.
Die Fraktion der Postmaster wird freuen, dass Dovecot-Entwickler Timo Sirainen im selben Anlauf auch das Kommunikationsprotokoll modifiziert hat (siehe Kasten “Interview mit Timo Sirainen”). Damit ist das neue Dsync zwar endgültig inkompatibel zur alten Implementierung, aber zugleich zum ersten Mal offen für künftige Erweiterungen (Plugins) mit denen Dsync dann etwa auch die ACL-Einstellungen replizieren könnte.
In Zukunft soll das ermöglichen, Replikationen auf Strecken mit extremen Latenzen einzusetzen. Die Maschinen speichern dann ihren Status in einer Datei, anstatt in ständiger, wechselseitiger Kommunikation jedes Detail hin und her zu senden. Ist die Datei schließlich ausgetauscht, erledigt jede Maschine alle Zustandsänderungen schön für sich allein. Der Partner muss dafür also nicht mehr erreichbar sein. Das macht Dovecot 2.2 ideal für Mirror- oder Backup-Server in der Cloud, Sicherungen über Satellitenverbindungen oder auf gänzlich vom Netz getrennten Medien, zum Beispiel auf USB-Sticks.
Zusammenfassung
Sein Nest hatte der Senkrechtstarter Dovecot bereits vor drei Jahren verlassen. Wie die kommende Version 2.2 zeigt, ist Dovecot in seiner Entwicklung längst auf einer stabilen Flugroute angelangt. Im nächsten Schritt geht es nun darum, den Komfort zu erhöhen – sowohl für die Anwender als auch für die Administratoren. Nicht zuletzt muss Dovecot inzwischen auch eine wachsende Anzahl von E-Mail-Nutzern abdecken, die mobil ins Internet gehen. Seinen guten Ruf dürfte Dovecot 2.2 auch in diesem Szenario behaupten, denn es ist der derzeit beste POP- und IMAP-Server.
Interview mit Timo Sirainen
Timo Sirainen ist der Initiator und Hauptentwickler von Dovecot. Das Linux-Magazin hat ihn anlässlich der neuen Dovecot-Version mit Fragen gelöchert.
Linux-Magazin: Timo, Du postest fast jeden Tag neuen Code. Die Menge an Dovecot-Funktionen scheint unbegrenzt zu sein. Wo möchtest Du hin? Hast Du ein bestimmtes Ziel?
Timo Sirainen: Ich strebe nach Perfektion. Tatsächlich will ich, dass es für niemanden mehr einen Anlass gibt, einen anderen IMAP-Server zu wählen. Dovecot soll die Möglichkeit bieten, alle ihm anvertrauten Aufgaben entweder direkt zu erledigen oder mit Hilfe einfach zu ergänzender Plugins. Die Software soll modular genug aufgebaut sein, um so gut wie jeden Teil auszutauschen, falls jemand etwas an ihr ändern will. Performance und Zuverlässigkeit sind natürlich ebenso wichtig.
Linux-Magazin: Dovecot ist im Laufe der Jahre sehr populär geworden. Hast Du Zahlen, die verraten, wie verbreitet es ist?
Timo Sirainen: Wir haben im letzten Sommer gezählt und herausgefunden, dass Dovecot 48 Prozent der IMAP-Server im Internet [5] antreibt, das sind etwa 2,3 Millionen Installationen. Zweiter wurde Courier mit 30 Prozent.
Linux-Magazin: Die Menge an IMAP-Erweiterungen wirkt – im besten Fall – ziemlich verwirrend auf Neueinsteiger. Welche Plugins sollte man sich Deiner Meinung nach vor allem anschauen?
Timo Sirainen: Die Erweiterungen IDLE und UIDPLUS benötigen die meisten heutigen Clients. Dann gibt es solche, die hoffentlich bald in einem größeren Rahmen eingesetzt werden: Special-Use verrät den IMAP-Clients, welche Mailboxen für versendete E-Mails, den Papierkorb und so weiter zum Einsatz kommen. Alle, die Dovecot ab Version 2.1 verwenden, sollten es einrichten. Die Erweiterung QRESYNC erlaubt das schnelle Resynchronisieren einer Mailbox gegen einen lokalen Cache. Dank NOTIFY fordern E-Mail-Clients Benachrichtigungen an, wenn sich bestimmte Mailboxen verändern, was die Erweiterung faktisch in ein “Multi-Mailbox IDLE” verwandelt.
Linux-Magazin: Gibt es eine Erweiterung, die Du vermisst? Was müsste die tun?
Timo Sirainen: Ich bin überwiegend glücklich mit der aktuellen Situation. Womöglich wären neue Erweiterungen nützlich, die sich um geteilte Mailboxen kümmern. Zum Beispiel ist es aktuell nicht möglich, anzugeben, welche Nachrichten-Flags geteilt werden können und welche privat sind.
Linux-Magazin: 2011 hast Du Dovecot Oy gegründet. Deine Firma bietet professionelle Dienstleistungen rund um Dovecot sowie Produkte an. Bleibt Dovecot weiterhin Open-Source-Software?
Timo Sirainen: Die ursprüngliche Idee von Dovecot Oy bestand darin, den Kunden Beratungsdienste und Support-Verträge anzubieten. Nach einer Weile haben wir festgestellt, dass es nicht genügend Firmen gibt, die ein Interesse daran haben, diese Dienste zu kaufen. Zum Teil liegt das wohl auch daran, dass Dovecot einfach zu gut funktioniert. Also dachten wir uns später ein paar andere Methoden aus, um ein Einkommen zu erzielen, inklusive des Verkaufs kommerzieller Produkte, die auf Dovecot aufbauen.
Die Idee ist noch immer, Dovecot so offen wie möglich zu halten. Es wird kein separates Dovecot mit irgendwelchen unfreien Features geben. Stattdessen werden wir eine Reihe kommerzieller Plugins für spezifische Funktionen anbieten, die einige Kunden womöglich erwerben wollen. Zurzeit betrifft dies das Objektspeicher-Plugin und eine Erweiterung zur E-Mail-Archivierung.
Linux-Magazin: Stell Dir vor, Dovecot wäre Feature-komplett und Du könntest Dich einem neuen Projekt zuwenden. Was wäre das?
Timo Sirainen: Das frage ich mich jetzt bereits seit einigen Jahren. Vielleicht würde ich Dovecot um Caldav- und Carddav-Server ergänzen. Vielleicht würde ich eine nettere LDAP-Bibliothek schreiben? Eines Tages plane ich auch, mein Icecap-Projekt http://icecap.irssi2.org fortzusetzen, das darauf abzielt, einen Client/Server-basierten IRC-Client zu schaffen, der ein wenig vom IMAP-Protokoll inspiriert ist.
Infos
- Peer Heinlein, “Senkrechtstarter”: Linux-Magazin 09/10, S. 66
- RFC zu den Lemonade-Extensions: http://tools.ietf.org/html/rfc5550
- Special-Use-RFC: http://tools.ietf.org/html/rfc6154
- Automx-Projekt: http://automx.org
- Mailserver-Testseite von Dovecot:http://openemailsurvey.org







