Reguläre Ausdrücke in procmail

903
Christian

Ich habe ein Problem mit dem Backscatter, um zufällig generierte falsche Adressen auf einer Domain mit einem Catchall zu erzeugen.

Der gefälschte Alias ​​verwendet ein Schema und verwendet egrep mit dem regulären Ausdruck

^To:.*.[A-Z].[a-z].*[A-Z].[a-z].*[0-9]@example.org.* 

in meiner maildir liste alle unerwünschten backscatter und glücklicherweise wird keine adresse mit diesem schema tatsächlich verwendet.

Procmail ist jedoch überzeugt, dass es nicht passt.

:0hD: * ^To:.*.[A-Z].[a-z].*[A-Z].[a-z].*[0-9]@example.org.* !spam  procmail: No match on "^To:.*.[A-Z].[a-z].*[A-Z].[a-z].*[0-9]@example.org.*" 

Ich kann nicht, dass procmail einen regulären Ausdruck wie egrep (und andere Tools, die Regex verwenden) interpretiert.

Was mache ich falsch?

Ich habe herausgefunden, dass procmail standardmäßig den Fall ignoriert, deshalb habe ich dem Rezept "D" hinzugefügt. Ich finde jedoch kein Beispiel für die Verwendung von [AZ] in einem Procmail-Rezept. Versuche ich etwas Unmögliches?

1

1 Antwort auf die Frage

2
tripleee

Der Regex-Dialekt von Procmail unterstützt den Wiederholungsoperator nicht . Sie müssen das Muster einfach in Langschrift buchstabieren (verwenden Sie möglicherweise eine Variable, wenn sie zu massiv wird).

:0D * ^To:.*.[A-Z].[a-z].*[A-Z].[a-z].*[0-9][0-9]([0-9]([0-9][0-9]?)?)?@example\.org !spam 

Abgesehen davon sollten Sie das Sperren nicht für ein Weiterleitungsrezept verwenden. Ein abschließender Platzhalter ist unbrauchbar und das hFlag ist die Standardeinstellung. also nahm ich diese dinge raus.

Ja, ich habe aus Verzweiflung einige Optionen hinzugefügt;) `procmail: Match auf" ^ To:. *. [AZ]. [Az]. * [AZ]. [Az]. * [0-9] [0-9] ([0-9] ([0-9] [0-9]?)?)? @ Example.org "` Vielen Dank, jetzt kann ich Mail-Benachrichtigungen wieder einschalten :) Christian vor 7 Jahren 0