Page 1 of 1
Rule Probleme
Posted: 17 Jul 2016, 14:42
by Rainer
Hi Christian,
erstmal großen Respekt für dein Werk "PopMan", das Teil ist der Hammer
So nun zu meinem vielleicht kleinen Problem oder Denkfehler meinerseits:
Meine Regel sieht so aus:
[Name="E-Mail_TLD_Freigaben"]
Header contains none of E-Mail_TLD_Freigaben -> Open("C:\Programme\PopMan\Data\RuleLogFile.log"), Delete, NotNew, Read
define list E-Mail_TLD_Freigaben = {E-Mail_TLD_Freigaben_RegEx}
define string E-Mail_TLD_Freigaben_RegEx = regex:"[^@]+@.+\.com$|[^@]+@.+\.de$|[^@]+@.+\.eu$|[^@]+@.+\.net$|[^@]+@.+\.org$"
Diese Regel funktioniert sehr gut, aber wenn ich die tld .ru (habe Bekannte in Rußland) auch freigebe und es kommt z.B. eine E-Mail aus Frankreich (.fr) rein, dann wird diese obwohl lt. Regel so eingerichtet nicht gelöscht.
Ich hoffe es fällt dir etwas ein
Gruß
Rainer
Re: Rule Probleme
Posted: 17 Jul 2016, 18:31
by Christian
Hallo Rainer,
es freut mich, dass Dir PopMan gefällt.
Ich verstehe nicht, wie die beschriebene Problematik entstehen kann. Kann eigentlich nur am RegEx-Ausdruck liegen. Wie sieht dieser aus mit der .ru Freigabe? Was man versuchen könnte: Statt mehrere Domain-Endungen in einem RegEx-Ausdruck zu vereinen, diese aufteilen also z.B.:
define list E-Mail_TLD_Freigaben = {
regex:"[^@]+@.+\.com$",
regex:"[^@]+@.+\.de$",
regex:"[^@]+@.+\.eu$",
regex:"[^@]+@.+\.net$",
regex:"[^@]+@.+\.org$",
regex:"[^@]+@.+\.ru$"
}
Vielleicht sollte man statt "Header" sich auf "From" beschränken.
Gruß
Christian
Re: Rule Probleme
Posted: 17 Jul 2016, 19:49
by Rainer
Hallo Christian,
Danke für die schnelle Antwort.
Habe es eben mit deiner Variante ausprobiert, leider mit dem selben Ergebnis.
Sobald ich die E-Mail tld. ru regex:"[^@]+@.+\.ru$" am Ende einfüge darf die E-Mail aus Frankreich passieren.
Auch deinen zweiten Vorschlag, mit From ist es noch komischer, tld. ru in der Liste, werden E-Mails von .de, .ru usw. gelöscht.
Bin jetzt noch einen Schritt weitergegangen und habe das Ganze mit nur einem E-Mail Konto und frischer PopMan.ini + leerer Blacklist getestet, gleiches Ergebnis.
Eine ganz komische Sache.
P.S. durch deine Variante spart man sich den string, list+string in einem, wieder was gelernt.
Re: Rule Probleme
Posted: 18 Jul 2016, 07:28
by Rainer
Update:
die Regel zwickt sich mit dem Account (eigenes E-Mail Konto), habe es eben mit einem .de-Konto getestet.
Wenn der Account z.B. .de ist + TLD_Freigabe, dann funktioniert die Regel nicht, sobald dann die .de aus der Freigabe entfernt wurde,
geht die Regel wieder.
Account ist .de E-Mail:
[Name="E-Mail_TLD_Freigaben"]
Header contains none of E-Mail_TLD_Freigaben -> Open("C:\Programme\PopMan\Data\RuleLogFile.log"), Delete, NotNew, Read
define list E-Mail_TLD_Freigaben = {
regex:"[^@]+@.+\.com$",
regex:"[^@]+@.+\.de$"}
Ergebnis = Die Regel funktioniert nicht.
Account ist .de E-Mail:
[Name="E-Mail_TLD_Freigaben"]
Header contains none of E-Mail_TLD_Freigaben -> Open("C:\Programme\PopMan\Data\RuleLogFile.log"), Delete, NotNew, Read
define list E-Mail_TLD_Freigaben = {
regex:"[^@]+@.+\.com$",
regex:"[^@]+@.+\.net$"}
Ergebnis = Die Regel funktioniert.
Die Frage ist jetzt, wo liegt der Fehler?
Re: Rule Probleme
Posted: 18 Jul 2016, 23:50
by Christian
Danke für die Spende!
Wenn man die Regel auf Header anwendet, dann wird ja auch z.B. die To-Adresse geprüft, und dort wird er bei einem DE-Konto natürlich die Ziel-Adresse finden.
Generell empfehle ich die Regex zu ändern. So wie bisher wird deutlich zu oft bzw. zu viel gematcht. Ein besserer Regex wäre: "\b[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.(com|de|eu|net|org|ru)\b" und dann nur auf From testen.
Die folgende Seite kann man nutzen, um reguläre Ausdrücke zu testen:
http://regexr.com/
Dort einfach mal den Mail-Quelltext unten reinkopieren (F10 in PopMan).
Was ich gerade nicht weiß ist, ob die Regex-Implementierung in PopMan casesensitive ist. Vermutlich ja, dann müsste man die Domain-Endungen noch mal in groß hinzufügen.
Re: Rule Probleme
Posted: 19 Jul 2016, 07:56
by Rainer
Besten Dank!
Des Rätsels Lösung war wie Du vermutet hast die RegEx.
Habe es testweise so am laufen:
Header or From contains none of E-Mail_TLD_Freigaben -> Open("C:\Programme\PopMan\Data\RuleLogFile.log"), Delete, NotNew, Read
define list E-Mail_TLD_Freigaben = {E-Mail_TLD_Freigaben_RegEx}
define string E-Mail_TLD_Freigaben_RegEx = regex:"\b[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.(com|de|eu|net|org|ru)\b"
läuft bis jetzt 1a