Filtern von Mails

  • Ab sofort steht euch hier im Forum die neue Add-on Verwaltung zur Verfügung – eine zentrale Plattform für alles rund um Erweiterungen und Add-ons für den DSM.

    Damit haben wir einen Ort, an dem Lösungen von Nutzern mit der Community geteilt werden können. Über die Team Funktion können Projekte auch gemeinsam gepflegt werden.

    Was die Add-on Verwaltung kann und wie es funktioniert findet Ihr hier

    Hier geht es zu den Add-ons

Status
Für weitere Antworten geschlossen.

Trolli

Benutzer
Registriert
12. Juli 2007
Beiträge
9.848
Reaktionspunkte
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?
 
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
 
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?
 
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
 
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
 
...und das :comparator "i;ascii-casemap" sorgt dafür, dass dabei nicht auf Groß-/Kleinschreibung geachtet wird, oder?
 
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?
 
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