geplaatst door: Dampflok
Ik wil aan mijn custom_body_checks bestand een regel toevoegen waarbij E-mail wordt geweigerd als er meer dan 10 E-mailadressen in de body staan. De reden hiervoor is dat op één van de ontvangende E-mailadressen telkens E-mail binnenkomt met in het bericht eerst 97 E-mailadressen in blauw en dan de overige inhoud. Dit wordt veroorzaakt door een afzender die eerst alles in AAN stuurt, mail van mijn server gebounced krijgt en vervolgens deze telkens doorstuurt. Ik heb namelijk in custom_header_checks het aantal E-mailadressen voor AAN en/of CC beperkt.

Filteren van content werkt wel met een regex regel voor bepaalde woorden maar ik krijg het niet voor elkaar om een regel te maken voor meerdere willekeurige E-mailadressen. Ik dacht dat /^([^@]*@){20,}/ overgenomen kon worden uit custom_header_checks maar dat is dus niet zo.

Wie weet de oplossing?


/^(benificiary)/   DISCARD
/^([^@]*@){20,}/   REJECT Your message contains too many E-mailaddresses

Het werkt wel wel met onderstaande syntax, dus zonder de count.


/^([^@]*@)/   REJECT Your message contains an E-mailaddress

Stukje brontekst E-mail:


<DIV style=3D"font-color: black"><B>From:</B> <A=20
title=3Deenzekereafzender@gmail.com=20
href=3D"mailto:eenzekereafzender@gmail.com">Een zekere afzender</A> =
</DIV>
<DIV><B>Sent:</B> Thursday, June 11, 2015 2:23 PM</DIV>
<DIV><B>To:</B> <A title=3Dpersoon1@ziggo.nl=20
href=3D"mailto:persoon1@ziggo.nl">Persoon 1</A> ; <A =
title=3Dpersoon2@live.nl=20
href=3D"mailto:persoon2@live.nl">Persoon 2</A> ; <A =
title=3Dpersoon3@freeler.nl=20
href=3D"mailto:persoon3@freeler.nl">Persoon 3</A> ; <A=20
title=3Dpersoon4@domeinnaam.nl =
href=3D"mailto:persoon4@domeinnaam.nl">Persoon 4</A> ; <A=20
title=3Dpersoon5@gmail.com =
href=3D"mailto:persoon5@gmail.com">Persoon 5</A> ;=20
<A title=3Dpersoo6@gmail.com=20
href=3D"mailto:persoon6@gmail.com">Persoon 6</A> ; <A=20
title=3Dpersoon7@solcon.nl=20
href=3D"mailto:persoon7@solcon.nl">Persoon 7</A> ;
</DIV>
<DIV><B>Cc:</B> <A title=3Dpersoon8@domeinnaam.com =
href=3D"mailto:persoon8@domeinnaam.com">Persoon=20
8</A> </DIV></DIV></DIV>

Het kan dus denk ik ook met een syntax voor een count van 'mailto' > 20 = REJECT

Maar welke syntax moet ik daarvoor gebruiken?

(Bewerkt door Dampflok om 22:16, 15-06-2015)

Postfix regex voor Content E-mail in body_checks
15 juni 2015 - 23:03    reactie #1
geplaatst door: Feek
volgens mij zoekt jouw regex de combinatie waarin 20 keer een email direct achter elkaar staan =>
dus e-maile-maile-maile-mail(20x) en niet op een willekeurige plaats.
Kan je niet beter het aantal tellen en dan als > 20 je gewenste actie uitvoeren? Dus zonder {20,}

(Bewerkt door Feek om 23:10, 15-06-2015)

Postfix regex voor Content E-mail in body_checks
15 juni 2015 - 23:09    reactie #2
geplaatst door: Dampflok
Precies. Maar hoe 'tel' ik het aantal E-mailadressen met een regex? In custom_header-checks werkt het wel maar daar is pcre aangegeven i.p.v. regexp.
Postfix regex voor Content E-mail in body_checks
15 juni 2015 - 23:14    reactie #3
geplaatst door: Feek
Overigens is jouw regex voor het vinden van de e-mail ook niet echt optimaal: kijk eens hier
Postfix regex voor Content E-mail in body_checks
15 juni 2015 - 23:22    reactie #4
geplaatst door: Feek
zoveel ervaring heb ik helaas niet, en kan het ook niet zo snel vinden
Postfix regex voor Content E-mail in body_checks
16 juni 2015 - 18:36    reactie #5
geplaatst door: Dampflok
Een ideetje: wat als er een regular expression is voor:

('alle tekens of spatie * 1 of 2' + (mailto) + 'alle tekens of spatie * 1 of 2') {20}

Zou dat dan niet berichten met 20 of meer adressen in de body afvangen?

Postfix regex voor Content E-mail in body_checks
16 juni 2015 - 19:17    reactie #6
geplaatst door: Pieterr
Dit gaat over SpamAssassin?

"One experiment is worth a thousand expert opinions."
Postfix regex voor Content E-mail in body_checks
16 juni 2015 - 20:59    reactie #7
geplaatst door: Dampflok
Nee, dit gaat over Postfix. In de configuratie in main.cf kan ik body_checks aangeven met informatie uit het bestand custom_body_checks. Met regels die ik daarin zet zou het mogelijk moeten zijn om op inhoud te filteren met waarden OK, REJECT of DISCARD. Alleen moet de regex dan wel kloppen. Ik heb wat dingen uitgeprobeerd op https://regex101.com waarbij het woord wel groen gearceerd is maar als ik die regex vervolgens in Postfix uitprobeer dan werkt het niet meer.