openXchange6: Did not specify legal script data length

Diesen Beitrag schrieb ich 15 Jahre und 7 Monate zuvor; die nachfolgenden Ausführungen müssen heute weder genau so nach wie vor funktionieren, noch meiner heutigen Meinung entsprechen. Behalte das beim Lesen (und vor allem: beim Nachmachen!) bitte stets im Hinterkopf.

Geschätzte Lesezeit: 1 Minute

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.

Alle Bilder dieser Seite: © Marianne Spiller – Alle Rechte vorbehalten
Hintergrundbild: 612x 612px, Bild genauer anschauen – © Marianne Spiller – Alle Rechte vorbehalten

Eure Gedanken zu „openXchange6: Did not specify legal script data length“

Ich freue mich über jeden Kommentar, es sei denn, er ist blöd. Deshalb behalte ich mir auch vor, die richtig blöden kurzerhand wieder zu löschen. Die Kommentarfunktion ist über GitHub realisiert, weshalb ihr euch zunächst dort einloggen und „utterances“ bestätigen müsst. Die Kommentare selbst werden im Issue-Tracker und mit dem Label „✨💬✨ comment“ erfasst – jeder Blogartikel ist ein eigenes Issue. Über GitHub könnt ihr eure Kommentare somit jederzeit bearbeiten oder löschen.