Diesen Artikel möchte ich für Google archivieren, nur falls mal wieder nach der beliebten Fehlermeldung:
sieveshell "unable to connect to server" gegoogelt wird. (Google ist voll davon).
Ich habe hier ein Etch-System, auf welchem seit Sarge ein
Cyrus IMAP Server seine Dienste verrichtet. Und zwar klaglos ohne Probleme und völlig unauffällig.
Sieve ist auch eingerichtet und funktioniert seitdem auch völlig problemlos.
Bis ich gestern neue Regeln hinzufügen wollte. Traditionell mach ich das mittels sieveshell -u <user> localhost
Die Anmeldung ging immer schief. Es war nicht möglich sich mit dem Sieve-Service zu verbinden. Was passierte war folgendes:
cb@localhost:$ sieveshell -u cb localhost
connecting to localhost
unable to connect to server at /usr/bin/sieveshell line 174.
Der Service lief natürlich, wie man folgendermaßen sehen konnte:
cb@localhost:~$ nc localhost sieve
"IMPLEMENTATION" "Cyrus timsieved v2.1.18-IPv6-Debian-2.1.18-5.1"
"SIEVE" "fileinto reject envelope vacation imapflags notify subaddress relational regex"
OK
logout
OK "Logout Complete"
Seltsam, seltsam. Es sah alles ok aus. Ein Blick in das Perl-Script sieveshell hat auch nicht weitergeholfen, das sah normal aus. Nach ewigem Suchen, fand ich dann diese Info in der Dokumentation:
2. From your normal account, telnet to the sieve port on the server
you're setting up:
telnet foobar sieve
If your server is running, you'll get a message similar to the
following one:
Trying 128.2.10.192...
Connected to foobar.andrew.cmu.edu.
Escape character is '^]'.
"IMPLEMENTATION" "Cyrus timsieved v1.1.0"
"SASL" "ANONYMOUS PLAIN KERBEROS_V4 GSSAPI"
"SIEVE" "fileinto reject envelope vacation imapflags notify
subaddress regex"
OK
Any message other than one similar to the one above means there is
a problem. Make sure all of authentication methods you wish to
support are listed. This list should be identical to the one
listed by "imapd" earlier. Next terminate the connection, by
typing "logout".
Wem fällt was auf?
Richtig, die Zeile "SASL" "ANONYMOUS PLAIN KERBEROS_V4 GSSAPI" tauchte lokal überhaupt nicht auf. Das bedeutete, wenn ich das richtig interpretiere, dass es keine Möglichkeit gab sich gegenüber dem Server zu authentifizieren. Das ist ja erstmal verwunderlich, denn der normale IMAP Login funktionierte tadellos und in der Konfigurationsdatei gibt es nicht wirklich viele Einstellungen zum Thema Sieve.
Irgendwann nachdem ich zunächst erfolglos mit den Anmelde- und
Sasloptionen gespielt habe, fiel mir dann auf, dass das Paket libsasl2-modules nicht installiert war. Nachdem das nachgeholt war, funktionierte plötzlich auch der Sieve-Login wieder und die Telnet Ausgabe sah nun wie gewünscht aus:
cb@localhost$ nc localhost sieve
"IMPLEMENTATION" "Cyrus timsieved v2.1.18-IPv6-Debian-2.1.18-5.1"
"SASL" "PLAIN NTLM LOGIN DIGEST-MD5 CRAM-MD5"
"SIEVE" "fileinto reject envelope vacation imapflags notify subaddress relational regex"
OK
logout
OK "Logout Complete"
Ach und laßt Euch von der Fehlermeldung
timsieved: could not getenv(CYRUS_SERVICE); exiting
nicht in die Irre führen. Diese kommt immer, wenn man versucht timsieved von Hand zu starten und nicht aus einem Cyrus-Prozess heraus. Diese Fehlermeldung hat mich nämlich auch ganz schön in die Irre geführt.
Sehr subtiles kleines Problem. Und ich verstehe aktuell immernoch nicht, warum man sich am IMAP-Server anmelden konnte, aber nicht bei Sieve.