Re: Mailserver - generelle Verständnisfrage

From: Oliver Gerlich <olig9@gmx.de>
Date: Wed Jun 08 2005 - 13:59:22 CEST

Dirk Traenapp wrote:
> Oliver Gerlich schrieb:
>
>> Hallo,
>> also um das ganze mal genauer zu erklären: ich hab das System schon
>> soweit aufgesetzt, daß ich per Thunderbird die Imap-Mails empfangen
>> kann. Dann wollte ich Sieve einrichten und bin gescheitert. Die
>> wenigen Hinweise bei Google haben auch nicht viel weitergeholfen, weil
>> ich eben keinen Schimmer hab, an welcher Stelle Sieve im Mailsystem
>> sitzt (sitzen soll) und welche anderen Systeme damit zusammenhängen.
>> Z.B. stand da in einer Newsgroup, ich solle lmtp über inetd starten...
>> Und dabei dachte ich, daß lmtp schon von cyrus gestartet wird?!
>> Deshalb meine Anfrage um Erläuterung des ganzen Ablaufs.
>
>
> [...]
>
>> Danke, Deine Hinweise haben mir schon weitergeholfen... Wenn ich jetzt
>> den procmail-Schritt da rauskriegen könnte und dann feststellen
>> könnte, wo Sieve da drinhängt und weshalb das nicht geht, wär ich ganz
>> zufrieden :)
>
>
> Der Sieve-Filter ist ein intregraler Bestandteil von cyrus-imap.
>
> Du musst in /etc/cyrus.conf die gewünschten Dienste aktivieren:
>
> - 8>< -------------------
> START {
> recover cmd="ctl_cyrusdb -r"
> idled cmd="idled"
> }
>
> SERVICES {
> imap cmd="imapd" listen="imap" prefork=5
> imaps cmd="imapd -s" listen="imaps" prefork=1
> sieve cmd="timsieved" listen="sieve" prefork=1
> lmtpunix cmd="lmtpd" listen="/var/lib/imap/socket/lmtp" prefork=1
> }
>
> EVENTS {
> checkpoint cmd="ctl_cyrusdb -c" period=30
> delprune cmd="cyr_expire -E 3" at=0400
> tlsprune cmd="tls_prune" at=0400
> }
> - 8>< -------------------
>
> und auch ebenfalls /etc/imapd.conf entsprechend einstellen:
>
> - 8>< -------------------
> [...]
> sieveuserhomedir: no
> sievedir: /var/lib/imap/sieve
> [...]
> - 8>< -------------------
>
> Wenn das so eingestellt ist und cyrus auch mit sieve-support generiert
> ist, dann sollte es funktionieren.
>
> Die Pfade musst du natürlich entsprechend deiner Distri einstellen,
> falls die das anders will als der Standard. Bei mir sind die obigen
> Beispiele aus einer RedHat-Version, die entprechend den Standardvorgaben
> des cyrus-imapd kompiliert ist.
>
> Wie bereits vorher gesagt, du brauchst weder procmail noch postfix. Du
> kannst das machen und hast dann auch mehr Möglichkeiten, aber für den
> reinen Empfang von "normalen" pop3-Konten brauchst du nur fetchmail und
> cyus-imapd.
>
> cu
>
> Dirk Traenapp

So, also das war (wie nicht anders zu erwarten :-) ein Fehler
meinerseits: das Sieve-SKript war nicht aktiviert. Hatte zwar gedacht,
daß ich das überprüft hätte, hatte damit aber falsch gedacht (das Skript
war mit Websieve erstellt worden, der das wohl nicht aktiviert hat). Zur
Info: mit dem Programm sieveshell (ist bei Debian in den cyrus21-Paketen
drin) kann man die Sieve-Filterskripte ansehen (dazu muß timsieved
laufen, der Daemon sollte aber automatisch von Cyrus gestartet werden).
In der sieveshell muß man sich mit dem Benutzernamen und Passwort
anmelden, das man auch im IMAP-Client eingetragen hat. Dann kann man
sich mit 'list' die vorhandenen Filterskripte auflisten lassen und mit
'get' ein Skript ausgeben. Und für mich war halt wichtig, das (einzige
vorhandene, von Websieve angelegte) Skript zu aktivieren, und zwar mit
'activate default'. default ist der Skriptname. Bei 'list' muß dann das
aktive Skript mit '<- active script' markiert sein!

Den procmail-Zwischenschritt hab ich auch rausgenommen, obwohl das
wahrscheinlich nichts mit den Sieve-Problemen zu tun hatte... Jedenfalls
hab ich in der /etc/fetchmailrc die mda-Option so geschrieben:
[...] mda "/usr/sbin/cyrdeliver -a oliver oliver"
oliver ist hier sowohl mein Linux-Anmeldename als auch der
IMAP-Anmeldename - keine Ahnung, was man da eintragen muß, wenn die
beiden Namen unterschiedlich sind :)
Den Befehl 'deliver' gibts bei Cyrus 2 wohl nicht mehr, nur noch
'cyrdeliver', und der hat andere Optionen.
Ach ja, zuerst hab ich diesen cyrdeliver-Befehl einfach stumpf aus der
/etc/procmailrc übernommen, was aber nicht geht (man darf wohl bei
cyrdeliver keine Mailbox mit -m angeben, sonst funzt Sieve nicht; und
wenn man keine Userid angibt, gibts einen SIGPIPE von fetchmail...).
Ein weiterer Stolperstein ist wohl die Rechtevergabe. In meinen Fall
wird fetchmail mit dem User fetchmail gestartet. Der User fetchmail muß
aber wohl in der Gruppe mail sein, damit die LMTP-Übergabe klappt.
Ansonsten sieht man im Syslog wieder nur eine SIGPIPE-Meldung von
fetchmail und evtl. noch ein "Permission denied" für
/var/run/cyrus/socket/lmtp.

Vielleicht hilft das ja anderen Leuten weiter. Etwas nervig bei diesem
Sieve-Debugging ist nämlich, das man nicht wirklich rauskriegen kann,
was Sieve macht und was nicht (es gibt halt keine Logmeldungen, man
müßte also schon ein strace oder so versuchen...).

Danke jedenfalls für die Hilfe,
Oliver Gerlich
Received on Wed, 08 Jun 2005 13:59:22 +0200

This archive was generated by hypermail 2.1.8 : Wed Jun 08 2005 - 13:59:36 CEST