2014-06-30 19 views
0

我有安装了exim4和spamassassin的邮件服务器。阻止具有大量相同域的收件人的电子邮件

我们(内部)垃圾邮件的大量邮件列表的问题,从几个用户(这是我们不能一味地说教或出于多种原因块)

未来有没有办法来阻止电子邮件到一个不合理的金额去相同的域(例如10),迫使这些用户进入BCC?

回答

0

是的,你可以在SpamAssassin中做到这一点。我不是一个exim专家,但是iirc exim也可以做到这一点(虽然它可能有一个难以接受的限制,对To/Cc和Bcc来说是不可知的)。

这应做到:

header DTECH_TEN_TOCC_IN_SAME_DOM ToCc =~ /(\@[^,>;]{3,99}[a-z]\b)(?:[^\@.-][^\@]{0,99}\1){10}(?![.-])/ 
describe DTECH_TEN_TOCC_IN_SAME_DOM Ten consecutive recipients have the same domain 

正如我已经写了,这只能抓住10个连续收件人具有相同的域,它都必须在相同的标题(ToCc意味着要么进行XOR抄送;它不合并标题)。如果将第三个字符类从[^\@]{0,99}更改为.{0,999}以与任何字符匹配更长的时间段,则该规则对于超出仅仅连续列出的地址但注意是有利的,因为这会使正则表达式计算远远高于计算。

您还必须确保SpamAssassin正在查看您的内部和外部邮件,这是非标准的。最后,你必须评分规则。在你这样做之前,请大量测试。特别是因为这是而不是垃圾邮件规则(它会比垃圾邮件更加非垃圾邮件;请考虑与测试统计相似的规则:__TO_MANY)。

但是,您不会告诉用户为什么邮件被拒绝。一个SMTP拒绝(例如来自Exim)可以有一个自定义“为什么被拒绝”的提示,这对于监视附件大小甚至通知用户他们发送的邮件过多(可能它们被感染)非常有用。您可以将Exim配置为在SMTP时间运行SA(例如sa-exim),但每次垃圾邮件拒绝都会向最终用户发送相同的消息。另一种选择是接受消息,然后反弹回来,包括SpamAssassin规则命中。对这种方法非常小心,因为它通常导致backscatter

相关问题