[SOLVED] Regex Thema

Minga

Active Member
Oct 20, 2020
51
2
28
Servus zusammen,

ich habe folgende "Warnungen" in der PMG gesehen:

Apr 10 15:07:05 cluster pmg-smtp-filter[1433670]: WARNING: ^* matches null string many times in regex; marked by <-- HERE in m/^* <-- HERE .qppmail.*$/ at /usr/share/perl5/PMG/RuleDB/WhoRegex.pm line 103.
Apr 10 15:07:05 cluster pmg-smtp-filter[1433670]: WARNING: ^* matches null string many times in regex; marked by <-- HERE in m/^* <-- HERE .suddenlink.*$/ at /usr/share/perl5/PMG/RuleDB/WhoRegex.pm line 103.
Apr 10 15:07:05 cluster pmg-smtp-filter[1433670]: WARNING: ^* matches null string many times in regex; marked by <-- HERE in m/^* <-- HERE .chairseu.*$/ at /usr/share/perl5/PMG/RuleDB/WhoRegex.pm line 103.

Offensichtlich sind die Regex nicht richtig gesetzt obwohl ich sie auf dem Match geprüft habe, allerdings prüft der Test das Regex selbst nicht. Ich habe im Forum
das Problem gesucht und die Antworten waren nicht weiterführend, ebenso das Handbuch und der verlinkte Regex "Generator" und die Antworten sind sehr knapp
und eher eine Aufgabe, als eine schnell weiterführende Antwort. Anyway... Wie lautet das richtige Regex um z.B. egalwas@qppmail.egalwas zu blocken? Ich habe es
so eingetragen: *.qppmail.*

Danke & Servus
 
das ist in den docs eigentlich ganz gut erklärt: https://pmg.proxmox.com/pmg-docs/pmg-admin-guide.html#pmg_mailfilter_regex

ein '*' alleine macht bei einer regex keinen sinn, da es nur sagt, 'das vorherige zeichen, beliebig oft (auch 0mal)' daher wenn man beliebiges matchen
will muss man an der stelle '.*' schreiben ('.' in einer regex ist ein einzelnes beliebiges zeichen)

also das beispiel
*.qppmail.*
wäre wohl richtig:

Code:
.*\.qppmail\..*

um beliebig (.*) dann '.qpmail.' (\. ist ein echter punkt in regex) und dann wieder beliebiges (.*) zu matchen