
Ich habe einen Centos-Server, auf dem nur Postfix läuft. Ich möchte E-Mails herausfiltern, die das Wort gratis
oder grátis
oder grétis
oder enthalten grâtis
.
Der zweite Buchstabe ist das Problem. Ich habe also diesen Rejex verwendet:
/^Subject:.*gr.tis/ REJECT Your message was rejected
Das Problem ist, dass der „Punkt“ nicht mit Sonderzeichen mit Postfix übereinstimmt. Ich meine, wenn ich eine E-Mail mit dem Wort gratis
im Betreff sende, wird sie gefiltert. Aber wenn ich eine E-Mail sende, die das Wort enthält, grátis
wird sie nicht gefiltert.
Wie löse ich dieses Problem?
Antwort1
Speichern Sie die Spam-Probe in einer Datei und untersuchen Sie sie z. B. mit , cat -A
, sed -n l
, hexdump
, hd
usw. od
– was auch immer nötig ist, um zu sehen, wie viele Bytes sich tatsächlich im Betreff:-Header befinden.
z.B
grep '^Subject:' /tmp/saved.spam | sed -n l
Auf diese Weise können Sie einen genauen regulären Ausdruck erstellen, den Sie in Ihre header_checks-Datei einfügen können.
Antwort2
Versuchen Sie es mit:
/^Subject:.*gr.{1,2}tis/ REJECT Your message was rejected
stattdessen. Vielleicht ist es ein Fehler bei der Kodierung.