2011/4/6 David Touzeau <da...@touzeau.eu> > Dear All > > I would like to create a rune in order to block messages that contains > more than X recipients in Spamassassin from these fields > > To: > CC: > Bcc: > > This without any MTA help > > How can i do this > > Best regards ? > > In 2009 i wrote this email to the MailScanner List answering something like your issue, maybe is a good approach, or may be not. I didnt test this rule on production servers.
----------------------------------- Some time ago i wrote this rule for SpamAssassin, i didnt test it a lot, so test it with precaution. I was for someone with the same problem than you. the logic of the rule is that if the email has more than 10 recipients at least 1 rule will hit, with combination is probable than more than one hits. you can also generate a new meta rule to have only 1 hit with an OR. header __TEST_TO_1 To =~ /(.*?(@).*?){1,}/i header __TEST_TO_2 To =~ /(.*?(@).*?){2,}/i header __TEST_TO_3 To =~ /(.*?(@).*?){3,}/i header __TEST_TO_4 To =~ /(.*?(@).*?){4,}/i header __TEST_TO_5 To =~ /(.*?(@).*?){5,}/i header __TEST_TO_6 To =~ /(.*?(@).*?){6,}/i header __TEST_TO_7 To =~ /(.*?(@).*?){7,}/i header __TEST_TO_8 To =~ /(.*?(@).*?){8,}/i header __TEST_TO_9 To =~ /(.*?(@).*?){9,}/i header __TEST_TO_10 To =~ /(.*?(@).*?){10,}/i header __TEST_CC_1 Cc =~ /(.*?(@).*?){1,}/i header __TEST_CC_2 Cc =~ /(.*?(@).*?){2,}/i header __TEST_CC_3 Cc =~ /(.*?(@).*?){3,}/i header __TEST_CC_4 Cc =~ /(.*?(@).*?){4,}/i header __TEST_CC_5 Cc =~ /(.*?(@).*?){5,}/i header __TEST_CC_6 Cc =~ /(.*?(@).*?){6,}/i header __TEST_CC_7 Cc =~ /(.*?(@).*?){7,}/i header __TEST_CC_8 Cc =~ /(.*?(@).*?){8,}/i header __TEST_CC_9 Cc =~ /(.*?(@).*?){9,}/i header __TEST_CC_10 Cc =~ /(.*?(@).*?){10,}/i #just for testing purposes #meta TEST_TO_1_CC_1 (__TEST_TO_1 && __TEST_CC_1) # meta TEST_TO_1_CC_9 (__TEST_TO_1 && __TEST_CC_9) meta TEST_TO_2_CC_8 (__TEST_TO_2 && __TEST_CC_8) meta TEST_TO_3_CC_7 (__TEST_TO_3 && __TEST_CC_7) meta TEST_TO_4_CC_6 (__TEST_TO_4 && __TEST_CC_6) meta TEST_TO_5_CC_5 (__TEST_TO_5 && __TEST_CC_5) meta TEST_TO_6_CC_4 (__TEST_TO_6 && __TEST_CC_4) meta TEST_TO_7_CC_3 (__TEST_TO_7 && __TEST_CC_3) meta TEST_TO_8_CC_2 (__TEST_TO_8 && __TEST_CC_2) meta TEST_TO_9_CC_1 (__TEST_TO_9 && __TEST_CC_1) meta TEST_TO_10_CC_0 (__TEST_TO_10) meta TEST_TO_10_CC_0 (__TEST_CC_10) score TEST_TO_1_CC_1 0.01 score TEST_TO_1_CC_9 0.01 score TEST_TO_2_CC_8 0.01 score TEST_TO_3_CC_7 0.01 score TEST_TO_4_CC_6 0.01 score TEST_TO_5_CC_5 0.01 score TEST_TO_6_CC_4 0.01 score TEST_TO_7_CC_3 0.01 score TEST_TO_8_CC_2 0.01 score TEST_TO_9_CC_1 0.01 score TEST_TO_10_CC_0 0.01 score TEST_TO_0_CC_10 0.01 hope it helps!