• Willkommen im Linux Club - dem deutschsprachigen Supportforum für GNU/Linux. Registriere dich kostenlos, um alle Inhalte zu sehen und Fragen zu stellen.

Sieve Filter an IMAP-Ordner binden ?

Status
Für weitere Antworten geschlossen.
Hi@all,

ich hoffe jemand von euch kennt sich etwas besser mit Sieve aus. Mir geht es weniger um die Syntax innerhalb der Regel, diese kann ich halbwegs.

Mir geht es darum auf welcher Ebene die Regel wirkt. Ein Beispiel. Wenn ich als Mailbox-User 'hans' mich in der shieveshell anmelde und ein Skript hochlade/aktiviere wird greift diese Regel ja auf der Ebene user.hans
So denke ich jedenfalls.
Wie kann ich nun ein Skript auf einer Ebene zum Einsatz bringen auf welcher es kein User gibt z.B. dem Shared-Folder:
archiv.irgenwas?

Wie funktioniert das?

Viele Grüße
pixel
 
Hmm,

ich habe da nicht viel Hoffnung für Dich ...

Die Sieve-Scripte für die User liegen ja unter : /var/lib/sieve/x/x-beliebiger-User
oder so, und zum hochladen bzw. aktivieren brauchst Du auch das Passwort des Users ....
Also für mich sieht das nicht so aus als wenn es einen allgemeinen Filter geben könnte.

ThomasF
 
Hi@all,

so die Notwendigkeit ein Sieve-Filter-Skript ohne User-Bindung zu realiseren habe ich umgangen. Jedoch habe ich nun ein Problem das selbst eine ganz triviale Filterung nicht funktioniert. Ich hoffe die Lösung ist auch trivial.

Also folgende Situation. Ich habe auf dem System einen User 'sammelbox' angelegt. Dieser hat im IMAP auch eine Mailbox (user.sammelbox) und man kann sich mit dem Mail-Programm auf diesen Account anmelden.

Die Mails hole ich nun mit folgender fetchmail-Konfiguration ab:

Code:
poll "pop3.dreampixel.de" protocol POP3 : user "@dreampixel.de" there with password "geheim" is "sammelbox" here ;

Soweit kein Problem. Wenn ich die Mails 'fetche' landen sie in der INBOX vom USer sammelbox. Nun habe ich als User 'sammelbox' in der Inbox ein Unterverzeichnis 'test' erstellt. Wenn ich mir das im cyrusadm anschaue ist das auch richtig:

[...]
user.sammelbox (\HasChildren)
user.sammelbox.test (\HasNoChildren)
[...]

Zum testen wollte ich nun einen Sieve-Filter erstellen welcher alle Mails die an den User 'sammelbox*' addressiert sind, also im ersten Adressteil das Wort 'sammelbox' enthalten in das Unterverzeichnis test verschoben werden. Das ist nur ein Testbeispiel um mich damit vertraut zu machen. Ich weiß das dieser Filter wenig Sinn ergibt!

Also habe ich mir folgendes Filterskript erstellt:

Code:
require "fileinto";
if header :contains ["To"] "sammelbox*" {
fileinto "INBOX.test";
}

Dies habe ich im Verzeichnis /var/lib/sieve als Datei 'sammelbox.dat' gespeichert. Kurze Zwischenfrage. Für was sind die ganzen Unterverzeichnisse (a - z) im Verzeichnis ../sieve ?

Anschließend habe ich die Sieveshell als User 'sammelbox' gestartet und das file mit:

punt sammelbox.dat sammelbox

hochgeladen. Zu guter letzt habe ich es mit:

activate sammelbox

aktiviert und mit 'list' kontrolliert ob es aktiv ist. Nur funktionieren tut es nicht. Was habe ich falsch gemacht?

Viele Grüße
pixel
 
Hmm, also ich hab das bisher nicht mit der Sieveshell gemacht, aber das hier tut es z.B:

Code:
require "fileinto";
# SPAM
if header :comparator "i;ascii-casemap" :contains "Subject" "*****SPAM*****"{
    fileinto "INBOX.SPAM";
    stop;
}

Wenn ich mit Websieve arbeite macht er sowas was Du hast und das tut es auch nicht .

EDIT Dein "Sammelbox*" bedeutet auch das dieser Begriff genau so vorkommt !!! Also mit dem Sternchen ...
"Contains" bedeutet ja schon beinhaltet.
Versuch es doch mal mit contains "To" "sammelbox"

Bezüglich /var/lib/sieve ...
Wenn Du einen User "sammelbox" hast ist sein Script unter s/sammelbox zu finden. Es sind immer die Anfangsbuchstaben ...


Gruß

ThomasF
 
Hi@all,

ich verzweifle so langsam an Sieve.
Hmm, also ich hab das bisher nicht mit der Sieveshell gemacht, aber das hier tut es z.B:
der Satz verwirrt mich ein wenig. Hast du dich da vertippt oder stehe ich auf der Leitung :D
So jetzt habe ich folgendes gemacht. Den Filer in der Sieveshell wieder gelöscht. Dann das Skript (sammelbox.dat) nach:
/var/lib/sieve/s/sammelbox geschoben.
Dann habe ich das Sternchen wieder raus genommen. DAs Skript sieht nun so aus:
Code:
require "fileinto";
if header :contains ["To"] "sammelbox" {
        fileinto "INBOX.test";
}
Anschließend habe ich es wieder aktiviert. Wieder habe ich von einem anderen Account aus eine Mail zum Provider geschickt und sie mit fetchmail abgeholt. Na zumindest ist der Filter jetzt nicht mehr wirkungslos. Die Mail landet nicht in der Inbox sondern im Nirvana was soviel bedeutet wie sie ist einfach weg.

Ich habe mich dann mal auf die Suche gemacht ob ich was finden kann was jedoch nicht ergeben hat. Die Mail ist weg.

Was mir aufgefallen ist das bei dir in der Filterregel ein 'stop' mit drin ist. Was bedeutet dieser Befehl?

Viele Grüße
pixel
 
Hi,

also ich habe mich nicht verschrieben.

Um Sieve Regeln zu erstellen habe ich bisher nie die Sieveshell benutzt da ich hierfür immer ein Webfontend genutzt habe...

Such mal unter http://sourceforge.net/ nach sieve und Du wirst schon ein paar davon finden ...

z.B Horde/ingo, websieve, smartsieve.

Wenn Du Dir die Dateirechte unter /var/lib/sieve/ anschaust wirst Du feststellen das alle Dateien cyrus:mail gehören.
Der einzelne User hat dort nix verloren ;-)
Dafür gibt es die sieveshell.

Du kannst(sollst) also Dein Script auch von Deinem Homeverzeichnis aus hochladen und aktivieren.

Mit der Systax von Sieve ist das so eine Sache, mir ist aufgefallen das diese sich ein wenig geändert hat, sagen wir seit SuSE 8.2.

Die Syntax die ich benutze tat es sowohl unter 8.2 wie jetzt auch unter 9.1 und wird so von Horde/ingo benutzt.

Das Stop am Ende einer Regel besagt das wenn der Filter (diese Regel) greift keine weitere Regel geprüft wird.
Damit kannst Du z.B zwei Regeln hintereinander auf die gleichen Kriterien filtern und so in der ersten Regel die Mail an jemand forwarden und in der zweiten diese Mail dann in einen Ordner verschieben.

Für den Fall das Du weißt das keine weitere Regel für diese Mail kommen wird würde ich immer das stop wählen, weil sonst auch noch alle weiteren Regeln geprüft werden ...

Ich habe in meiner Mailbox ca. 25 sieve Filterregeln die recht gut funktionieren ....

So long

ThomasF
 
Status
Für weitere Antworten geschlossen.
Oben