openXchange6: Did not specify legal script data length
Sporadisch tritt das auf der openXchange6-Installation auf: die User wollen im Webfrontend einen neuen Mailfilter einrichten und erhalten die folgende Fehlermeldung:
Error while communicating with the sieve server: Error for user spillerm: "Did not specify legal script data length" (MAIL_FILTER-0015,1476884817-5260)
Wie ich inzwischen herausfinden konnte passiert dies in erster Linie dann, wenn ein User seine Vacation-Nachricht auf „inaktiv“ setzt; im sieve
-Script bleibt diese dann (auskommentiert) stehen, und das Filter-File wird neu generiert. Jedoch verhunzt der OX da offenbar etwas; die Script-Datei wird vergleichsweise groß (> 20KB) und ist mit binärem Kram aufgefüllt. Wie man das verhindern kann weiß ich leider aktuell nicht, aber zumindest wie man es behebt: Im ersten Schritt nachschauen, wo die sieve
-Dateien abgelegt werden; definiert wird das über den Eintrag sievedir: in der /etc/imapd.conf
, bei mir heißt der Pfad /data/spool/sieve
. Gehen wir also davon aus, dass der User spillerm
oben genanntes Problem mit seinen Mailfiltern hat, so bewegst du dich nach /data/spool/sieve/s/spillerm
. Hier liegen einige Files:
lrwxrwxrwx 1 cyrus mail 2008-11-25 12:28 defaultbc -> Open-Xchange.bc
-rw------- 1 cyrus mail 2009-02-02 11:09 Open-Xchange.bc
-rw------- 1 cyrus mail 2009-02-02 11:09 Open-Xchange.script
Bearbeiten wirst Du hier lediglich die Datei Open-Xchange.script
! defaultbc
ist ein Symlink auf Open-Xchange.bc
, und Open-Xchange.bc
wiederum wird aus Open-Xchange.script
generiert. Als User cyrus
bearbeitest du nun also die Datei Open-Xchange.script
und löschst die fehlerhaften Einträge – in meinem Fall musste ich die auskommentierte Vacation-Nachricht komplett löschen. Arbeite ggf. sinnvollerweise auf einer Kopie der Datei für den Fall, dass dir ein Fehler unterläuft; nachdem du sie gespeichert hast, musst du sie nach Open-Xchange.bc
übersetzen, das passiert mit dem Befehl sievec
; auf meinem Debian-System findet sich dieses Kommando in /usr/lib/cyrus/bin
, so dass der vollständige Aufruf aussieht wie folgt:
$ /usr/lib/cyrus/bin/sievec \
/data/spool/sieve/s/spillerm/Open-Xchange.script \
/data/spool/sieve/s/spillerm/Open-Xchange.bc
Und das war’s dann auch schon – der betreffende User sollte sich unbedingt im Webinterface ab- und erneut anmelden, ehe er seine Filter erneut bearbeitet.
Hintergrundbild: 612x 612px, Bild genauer anschauen – © Marianne Spiller – Alle Rechte vorbehalten