Date Tags Mail / IMAP

Nun betreibe ich schon recht lange einen cyrus imapd — immer noch einen 2.2er, weil Debian stable da sehr konservativ ist — aber man lernt trotzdem eine Menge dazu. Offensichtlich lohnt es sich, auch mal Sachen wieder anzuschauen, um die man sich lange nicht mehr gekümmert hat, weil sie einfach liefen. Da mir neulich mit wheezy ein 2.4er auf die Platte gespült hat, habe ich nun keine Ausrede mehr, mich nicht mehr drum zu kümmern.

Im Folgenden einige erfreuliche Sachen, die mir aufgefallen sind. Teilweise gibt es die Verbesserungen schon länger, aber wie gesagt - „never change a running IMAP Server“. Deshalb sind mir die cyrus Neuerungen etwas aus dem Fokus geraten.

Verbesserung 1: Umlaute in sieve

Endlich kann auch der Cyrus Umlaute - wenn ich eine Sieve Regel

if header :contains ["Subject"] "Test: öüä€ẞ§"{
fileinto "INBOX.Trash";
}

habe, dann funktioniert die auch wirklich - damit ist endlich auch der cyrus da, wo auch die sieve-Implementation vom Exim oder die von Zimbra ist: Meilenweit vor procmail (ja, so was wird noch eingesetzt).

Verbesserung 2:Mailbox Annotations

Was ich bisher stets verdrängt habe war das mboxcfg Kommando im cyradm - damit kann man Annotations anlegen. Das geht zwar noch nicht nach den aktuellen RFCs sondern nach einem älteren Draft von Cyrus Daboo (ANNOTATEMORE), aber man kann damit einige Dinge steuern. Ein für mich eher uninteressantes Beispiel ist cyr_expire, das dort nach einer maximalen Nachrichtenlebensdauer im Ordner schaut. Ich erledige sowas über ein Perlskript mit seperater Konfiguration. Spannender ist aber

Verbesserung 3:Globale Sieve Skripte

Man kann für shared Folders Sieveskripte anlegen, d.h. man macht

mboxcfg $SHARED_FOLDER sieve $SKRIPTNAME

wobei man $SKRIPTNAME vorher als Administrator hochgeladen hat. Skripte, die ein Administrator hochlädt, sind nämlich automatisch globale Skripte - und wenn man über die Sieveshell geht, kann man auch sicher gehen, dass die Skripte ordnungsgemäß in Bytecode übersetzt werden.

Verbesserung 4: Shared Seen State

Auch eine nützliche Annotation ist „/vendor/cmu/cyrus-imapd/sharedseen“ — damit wird der seen-state für einzelne Ordner nicht mehr individuell pro Benutzer gespeichert, sondern einmal pro Ordner. Das ist recht praktisch für gemeinsam genutzte Eingangsordner. Gesetzt wird das mit

mboxconfig $SHARED_FOLDER sharedseen true

Verbesserung 5: Replikation

wird nachgereicht.