.

Vacation-Script mit Sieve |

Ich habe vor ein paar Tagen einen neuen Mailserver (Postfix 2.3.8-2, Cyrus 2.2.13) auf Basis von Debian Etch für unsere Firma aufgesetzt.

Als kleines Bonbon wollte ich (auch weil es sich über eGroupware für die Benutzer einfach verwalten lässt) die Verwendung von Sieve-Scripte ermöglichen.

Sieve-Scripte ermöglichen dem IMAP-Server, Filter auf eMails anzuwenden.

So kann beispielsweise eintreffender Spam direkt in ein entsprechendes Unterverzeichnis des Users geschoben werden, bestimmte eMails direkt weitergeleitet oder zurückgewiesen werden. Oder man kann eben automatisch Abwesenheitsbenachrichtigungen an den Absender einer eMail zurücksenden. Und das alles serverbasiert, also ohne Beteiligung eines Mail-Programmes. (Mehr dazu beispielsweise in der Wikipedia unter: sieve).

Erste Tests, eMails aus Mailinglisten oder Spam direkt in Unterordner einsortieren zu lassen, klappten auch einwandfrei. Nur bei Rejects oder Vacation-Nachrichten weigerte sich Cyrus beharrlich, eine eigene Mail zu erzeugen.

Stundenlange Internetrecherchen und viel Bastelei richteten vorerst garnichts aus. Bis ich gestern abend zufällig auf den Hinweis stieß, Cyrus mit Postfix nicht über TCP-Ports sondern über Sockets kommunizieren zu lassen.

Und da war sie: die Lösung meines Problems.

Denn die über Debian zur Verfügung gestellten und von mir genutzten Pakete kommunizieren standardmäßig ersteinmal über normale TCP-Ports.

Und auf diesem Weg will, so ist zumindest zumindest meine Vermutung, Cyrus aus Sicherheitsgründen keine eigenen Mails generieren (was ja für Reject-Benachrichtigungen und Vacation-Mails erfolgen müsste).

Also schnell die Kommunikation auf Sockets umgestellt:

In der /etc/postfix/main.cf gehört der Mailbox-Transport vom vorgegebenen “cyrus” geändert auf:

mailbox_transport=lmtp:unix:/var/run/cyrus/socket/lmtp

Und damit der neue Transporter auch aus dem chroot-Gefängnis heraus auf das Socket zugreifen darf, muss noch die entsprechende Zeile in der master.cf angepasst werden:

# service type  private unpriv  chroot  wakeup  maxproc command + args
lmtp      unix  -       -       n       -       -       lmtp

Das in der main.cf angegebene Socket muss natürlich mit dem in der /etc/cyrus.conf übereinstimmen…

Und das war’s auch schon. Nach einem Neustart des MTA sollten die Urlaubsnachrichten nun ordentlich generiert und dem richtigen Ziel zugeschickt werden.

Und wenn’s trotzdem nicht klappt: Ein telnet auf den sieve-Port (i.d.R. 2000) zeigt, ob Sieve das gewünsche Plugin überhaupt unterstützt:

$ telnet localhost sieve
Trying 127.0.0.1…
Connected to localhost.
Escape character is ‘^]’.
“IMPLEMENTATION” “Cyrus timsieved v2.2.8″
“SASL” “LOGIN PLAIN”
“SIEVE” “fileinto reject envelope vacation imapflags notify subaddress relational regex”
“STARTTLS”
OK
logout
OK “Logout Complete”
Connection closed by foreign host.

Mir fällt gerade noch ein:
Wenn Cyrus sich trotz aller oben umgesetzter Schritte weiterhin dagegen sträubt, Vacation-Mails oder Rejects rauszuschicken, ist vielleicht auch die imapd.conf schuld.

Hier sollten nämlich zumindest folgende Angaben auftauchen:

sievedir: /var/lib/sieve
sieveusehomedir: false
sendmail: /usr/sbin/sendmail

V.a. der Pfad für Sendmail ist wichtig, der Rest sollte ja (hoffentlich) bei der Installation von Cyrus schon entsprechend eingerichtet worden sein.

Und eine Vorab-Überprüfung der Werte auf Korrektheit ist natürlich Pflicht, es könnten ja durchhaus die Homeverzeichnisse der User die Sievescripte enthalten. ;)

Und wer eine gute Anleitung für die Erstellung von Scripten zur Mailsieberei sucht, der sei zu folgender Seite des Regionalen RZ der Uni Köln gewiesen: http://www.uni-koeln.de/rrzk/mail/software/sieve/sieve.html

2 Antworten zu 'Vacation-Script mit Sieve'
  1. Martin:

    Hallo:
    Wie ich sehe hast du gemacht was ich gerade machen will. Ich habe folgende Konfiguration:Debian 4 egroupware mit ldap samba postfix läuft gut. nur mein cyrus2.2 funktionirt nicht, habe auch noch keine genaue anleitung gefunden. Könntest du bitte deine konfiguration von cyrus erklären. Vieleicht kannst du deine cyrus.conf idmapd.conf und deine imapd.conf weitergeben. Oder braucht es sonst noch etwas?
    Ich wöre dir sehr dankbar für deine Unterstüzung.
    Grüße aus dem Süden: MartinB

  2. Stefan:

    Hi Martin,

    Ich kann Dir schlecht alle Optionen der Cyrus-Konfiguration erklären, da gibt es ganze Bücher darüber.

    Folgende URL sollte Deine erste Anlaufstelle zur Konfiguration sein: http://cyrusimap.web.cmu.edu/imapd/

    Gruß
    Stefan

Eine Antwort eintragen

*benötigt

*benötigt / nicht sichtbar

Kalender
September 2007
M D M D F S S
 12
3456789
10111213141516
17181920212223
24252627282930
Ereignisse
    • Keine Termine.
Kategorien
Archiv
Wichtiges!?

.