Filtern von Mails

Status
Für weitere Antworten geschlossen.

Trolli

Benutzer
Mitglied seit
12. Jul 2007
Beiträge
9.848
Punkte für Reaktionen
1
Punkte
0
Nachdem ich jetzt nach einigen Mühen dovecot-sieve ans Laufen bekommen hab, frage ich mich, nach welchen Regeln eine Filterung möglich ist. Ich hab zwar einige Beispielskripte gefunden, aber keine genaue Aufstellung der Filtermöglichkeiten.

Ich würde zum Beispiel gerne die über getmail empfangenen Mails je Konto in einen eigenen Ordner schieben. Wahrscheinlich macht man das am besten über das "To:"-Feld im Header, oder?
 

jahlives

Benutzer
Mitglied seit
19. Aug 2008
Beiträge
18.275
Punkte für Reaktionen
4
Punkte
0
Diese Seite kennst du? http://wiki.dovecot.org/LDA/Sieve
Dein Vorhaben geht sicherlich am besten via TO Header. Aber grundsätzlich kannst du auf jeden Header einer E-Mail und dessen Wert zugreifen. So kannst du z.B. mittels Prüfung des Subjects auf SPAM die Spammails direkt in einen Spamordner verschieben lassen.
Wenn du magst, kann ich heute abend nach der Arbeit mal meine sieve-Regeln hier reinstellen...
Zum Testen eines Regelsatzes kannst du http://libsieve-php.sourceforge.net/ verwenden und weitere Beispiele von sieve-Scripten gibt es z.B. hier http://wiki.fastmail.fm/index.php?title=SieveExamples
 

Trolli

Benutzer
Mitglied seit
12. Jul 2007
Beiträge
9.848
Punkte für Reaktionen
1
Punkte
0
Ja, fände ich sehr spannend Deine Regeln mal zu sehen.

Die von Dir verlinkte Seite hatte ich gefunden, allerdings fand ich die Infos dort etwas konfus - vielleicht muss ich mir das heute Abend mal bei einem gemütlichen Bierchen nochmal intensiv ansehen. Kann man bei den Regeln auch Wildcards benutzen?
 

jahlives

Benutzer
Mitglied seit
19. Aug 2008
Beiträge
18.275
Punkte für Reaktionen
4
Punkte
0
Entweder
:matches
The entire string must match the wildcard expression. "*" matches zero or more characters. "?" matches a single character. They may be escaped with a PAIR of backslashes. (The first backslash is to escape the second, to pass it through the string literal parser to the wildcard parser.)
oder
:contains
Now this one is more interesting. The value in the Field must exactly contain the value you specify (wildcards are not allowed). If I have a field with the value 'thisismylife', any subsection of that will match ('sis', 'his','my','life', for example will all match). Be very careful with this one, as it's pretty easy to create a rule that matches stuff you don't want matched.
Bei matches kannst du Wildcards verwenden oder du gibst bei contains einfach den Teil des Strings an, der vorhanden sein muss

Gruss

tobi
 

jahlives

Benutzer
Mitglied seit
19. Aug 2008
Beiträge
18.275
Punkte für Reaktionen
4
Punkte
0
Hier mal die sieve Filter wie sie bei mir laufen
Code:
require ["fileinto","envelope","subaddress"];
if allof(header :comparator "i;ascii-casemap" :contains "Return-path" "<unknown>",header :comparator "i;ascii-casemap" :contains "Delivered-to" "unknown",header :comparator "i;ascii-casemap" :contains "Received" "from pop.googlemail.com"){
 discard;
 stop;
} elsif header :comparator "i;ascii-casemap" :contains "Return-path" "@dovecot.org" {
 fileinto "Computer &- Security.Foren &- Maillists.Dovecot";
 stop;
} elsif header :comparator "i;ascii-casemap" :contains "Return-path" "@postfix.org" {
   fileinto "Computer &- Security.Foren &- Maillists.Postfix.org";
   stop;
} elsif anyof(header :comparator "i;ascii-casemap" :contains "Return-path" "postfixbuch-users-bounces@listen.jpberlin.de",header :comparator "i;ascii-casemap" :contains "Return-path" "@de.postfix.org") {
   fileinto "Computer &- Security.Foren &- Maillists.Postfix.de";
   stop;
} elsif anyof(header :comparator "i;ascii-casemap" :contains "subject" "[syno.brain-force.ch]",header :comparator "i;ascii-casemap" :contains "Return-path" "blog@brain-force.ch") {
   fileinto "postmaster.Wiki";
   stop;
} elsif header :comparator "i;ascii-casemap" :contains "Return-path" "@python.org" {
  fileinto "Computer &- Security.Foren &- Maillists.Mailman";
  stop;
} elsif anyof(header :comparator "i;ascii-casemap" :contains "To" "list@brain-force.ch",header :comparator "i;ascii-casemap" :contains "Return-path" "@list.brain-force.ch") {
   fileinto "postmaster.Mailman";
   stop;
} elsif header :comparator "i;ascii-casemap" :contains "Return-path" "@lists.roundcube.net" {
  fileinto "Computer &- Security.Foren &- Maillists.RoundCube";
  stop;
} elsif header :comparator "i;ascii-casemap" :contains "Return-path" "info@synology-forum.de" {
   fileinto "Computer &- Security.Foren &- Maillists.Synology.Forum";
   stop;
} elsif header :comparator "i;ascii-casemap" :contains "subject" "postfix statistic" {
   fileinto "postmaster.Postfix Statistics";
   stop;
} elsif header :comparator "i;ascii-casemap" :contains "from" "MAILER-DAEMON@84-73-83-173.dclient.hispeed.ch" {
   fileinto "postmaster.Local Postmaster";
   stop;
} elsif anyof(header :comparator "i;ascii-casemap" :contains "to" "alert@brain-force.ch", header :comparator "i;ascii-casemap" :contains "from" "root@brain-force.ch")  {
   fileinto "postmaster.Diskstations";
   stop;
} elsif anyof(header :comparator "i;ascii-casemap" :contains "from" "@server-p001.hostpoint.ch", header :comparator "i;ascii-casemap" :contains "from" "mailer-daemon@googlemail.com") {
   fileinto "postmaster.Remote Delivery Failures";
   stop;
} elsif anyof (header :comparator "i;ascii-casemap" :contains "to" "root@tobisworld.homeip.net", header :comparator "i;ascii-casemap" :contains "to" "postmaster@tobisworld.homeip.net") {
   fileinto "postmaster";
   stop;
} elsif anyof (header :comparator "i;ascii-casemap" :contains "from" "@amnesty.ch", header :comparator "i;ascii-casemap" :contains "from" "@greenpeace.ch",header :comparator "i;ascii-casemap" :contains "from" "@pro-regenwald.de") {
   fileinto "Newsletter.Politics";
   stop;
} elsif header :comparator "i;ascii-casemap" :contains "from" "@ebiz-consult.de" {
   fileinto "Computer &- Security.Foren &- Maillists.PHP-Resource";
   stop;
} elsif header :comparator "i;ascii-casemap" :contains "subject" "*****SPAM*****" {
   fileinto "Junk E-mail";
   stop;
} else {
   keep;
}
Gruss

tobi
 

Trolli

Benutzer
Mitglied seit
12. Jul 2007
Beiträge
9.848
Punkte für Reaktionen
1
Punkte
0
...und das :comparator "i;ascii-casemap" sorgt dafür, dass dabei nicht auf Groß-/Kleinschreibung geachtet wird, oder?
 

Trolli

Benutzer
Mitglied seit
12. Jul 2007
Beiträge
9.848
Punkte für Reaktionen
1
Punkte
0
Dein Vorhaben geht sicherlich am besten via TO Header.
Damit erwische ich aber nicht die Mails, die an eine Verteilerliste geschickt werden. Der Synology-Newsletter geht z.B. an den Empfänger enews@synology.com.

Gibt es keine andere Möglichkeit?
 

jahlives

Benutzer
Mitglied seit
19. Aug 2008
Beiträge
18.275
Punkte für Reaktionen
4
Punkte
0
Schau dir mal den Return-path Header an. Bei vielen Mailinglisten/Newslettern ist der eindeutig und immer gleich.
Jop das i Gedöns sorgt dafür, dass sowohl die Header Angabe als auch den Inhalt ohne Gross/Kleinschreibung betrachtet werden. Würde ich immer verwenden. Soll ja Clients geben die Header konsquent kleinschreiben ;)
 
Status
Für weitere Antworten geschlossen.
 

Kaffeautomat

Wenn du das Forum hilfreich findest oder uns unterstützen möchtest, dann gib uns doch einfach einen Kaffee aus.

Als Dankeschön schalten wir deinen Account werbefrei.

:coffee:

Hier gehts zum Kaffeeautomat