# Wie benutzt man den Inhaltsfilter unter globale Filter richtig?



## M. Zink (26. Juni 2010)

Da ich trotz recht strammen Regeln immer noch jede menge Spam auf den PC bekomme möchte ich langsam anfangen solche Mails mit Inhaltsfiltern noch weiter auszusperren. Leider schnall ich das nicht so ganz was für Angaben man da machen soll / muss.

Ich hab z.B. jede menge Mails mit folgenden Betreffzeilen


> Hot news for webmaster! 70% off all June! Michigan Its thethe On
> Great news, webmaster, 80% off today. spilt razed a was
> Hot news for webmaster! 70% off all June! of overseasHongzhang in
> Hot news for webmaster! 70% off all June! of viewed
> Great news, webmaster, 80% off today. ISBN p class for


Um für diese Mails nun einen Filter zu bauen würde ich bei Filter dann Header Filter wählen? Weil der Betreff steht doch im Header oder?
Und bei RegEx Pattern würde ich irgendwas in folgender Richtung angeben


> (.*)webmaster(,|.|!) ([0-9]+)\%(.*)


Oder würde das so nicht gehen?
Und was muss bei Daten angegeben werden?
Und zu guter letzt - was bewirkt welche Einstellung bei Aktion?

Vielen Dank für die Hilfe schon mal


----------



## Till (27. Juni 2010)

Hier ist eine Auflistung der diversen möglichen Aktionen und auch ein paar Beispiele:

http://www.postfix.com/header_checks.5.html


----------



## M. Zink (28. Juni 2010)

OK hab ich mir durchgelesen und versteh auch jetzt wie das läuft. Aber ich bin immer noch nicht sicher wie ich den RegEx Pattern zusammen bauen muss. Wäre der den ich da im ersten Post stehen habe OK oder würde das so nicht laufen?


----------



## Till (28. Juni 2010)

Der Regex könnte so gehen wie Du ihn hast. Oder aber Du schränkst Ihn noch auf den Betreff ein, so in der Art:

/^Subject:.*webmaster(,|.|!) ([0-9]+)\%.*


----------



## M. Zink (28. Juni 2010)

OK ich werd das mal testen. Nur doof das man nicht mit bekommt ob der Filter richtig greift und ob er ggf. Mails erwischt die er nicht löschen soll. Außer ich stell das erst mal so ein, dass er irgendwas in den Betreff packt.

Was hat es denn mit dem Feld Daten auf sich?


----------



## Till (28. Juni 2010)

Daten ist das, was in der postfix manpage as text bzw. optional text bezeichnet wird. Zum testen des Filters stell ihn doch einfach auf "Warn" und füge dann bei Daten irgend einen Warntext ein, nachdem Du dann später im mail.log mit grep suchen kannst.


----------



## M. Zink (28. Juni 2010)

So, hab jetzt ein wenig experimentiert. Der RegExp Pattern muss schon ordentlich gemacht sein sonst läuft das nicht. Ich hatte die ganze Zeit folgende Fehlermeldung.


> Jun 28 15:45:56 server postfix/cleanup[21941]: warning: regexp map /etc/postfix/header_checks, line 2: no closing regexp delimiter "/": skipping this rule


Und kann deshalb noch nicht sagen ob der Pattern für mein Vorhaben taugt. Ich werd aber noch mal berichten falls noch jemand über die Methode versucht Spam zu filtern.

Ich hab übrigens noch das Problem, dass mir irgend ein Honk Spam schickt mit irgend einem korrupten Scheiß im Header welcher verhindert, dass mein Exchange Server die Mails abruft. Dadurch haben sich von Freitag bis heute Morgen 378 Mails alleine in einer Mailadresse gestaut. Das heißt in gut 2 Tagen knappe 400 Spam Mails bloß auf einer Mailadresse. Deshalb verschwende ich so viel Zeit damit dauerhafte Lösungen für das Thema zu finden weil ich halt das echt nicht mehr aus mit dem Spamscheiß.


----------



## Till (28. Juni 2010)

> Jun 28 15:45:56 server postfix/cleanup[21941]: warning: regexp map  /etc/postfix/header_checks, line 2: no closing regexp delimiter "/":  skipping this rule


Dann füge einen schließenden / hinzu:

/^Subject:.*webmaster(,|.|!) ([0-9]+)\%.*/


----------



## M. Zink (29. Juni 2010)

Jep hab ich jetzt und es scheint auch prima zu klappen. Hab jetzt mal auf Reject umgestellt und mal sehen. Von den 5 Regeln die ich erstellt habe werden scheinbar jetzt schon ca. 50% der Spammails erfasst. Ich behalte die Logs mal im Auto.

Habe eine Spammail Variante wo ich mit dem Betreff allerdings nicht weiter komme weil da immer nur Wichtig oder Mahnung oder sonst irgend ein Schrott steht. Genügt es bei "Filter" auf "Body Filter" zu stellen und den RegEx Pattern entsprechend meinen Vorstellungen zu bauen oder muss ich beim RegEx auch ähnlich wie beim Betreff noch "Body:" dazu bauen damit der RegEx den richtigen Bereich der Mail analysiert?


----------



## Till (30. Juni 2010)

Schau Dir am besten mal den Quelltext einer Email in Deinem Emailprogramm an, dann siesht Du, wie der Aufbau ist. Der Body Einer email hat kein Feld "Body:". Feldnamen gibt es nur im Email Header.


----------



## nut (17. Dez. 2012)

Hallo,

ja klar, ist nicht mehr ganz taufrisch, aber das Thema passt eben. sorry

Ich möchte eine Empfänger-Mail-Adresse nur mit zahlen vor dem @ filtern und löschen.

Mit dieser Regex habe ich versucht dies über einen Mail Inhaltsfilter zu erledigen, die Regex funktoniert in testprogrammen wie: RegexPlanet: online regular expression testing for Java
Aber der Inhaltsfilter funktioniert leider nicht. Was mache ich falsch?


Im Header kommt die Sequenz: 
...for <123456789@domain.de>...

Mail Inhaltsfilter: Header Filter
Regexp. Pattern: (?<=for <)(.[0-9]+)(?=@domain.de)
Daten: leer
Aktion: DISCARD
Aktiv: ja


Vielen Dank im Voraus
nut


----------



## nut (17. Dez. 2012)

Habe die Antwort gefunden:

/^(To|From|Cc|Reply-To): [0-9]+@domain.de/

dann geht es!


----------

