我有一个安装了exim4和spamassassin的邮件服务器。
我们遇到大量邮件列表的(内部)垃圾邮件问题,这些邮件列表来自少数用户(由于多种原因我们无法进行教育或阻止)
有没有办法阻止不合理数量的电子邮件转到同一个域(例如10)以强制这些用户加入BCC?
答案 0 :(得分:0)
是的,您可以在SpamAssassin中执行此操作。我不是一个外来专家,但是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
表示To xor Cc;它确实不合并标题)。如果您将第三个字符类从[^\@]{0,99}
更改为.{0,999}
以在更长的时间段内匹配任何字符,则该规则将不仅仅是连续列出的地址,但请注意强烈>这会使正则表达式的计算成本更高。
您还必须确保SpamAssassin正在查看您的内部和外部邮件,这是非标准的。最后,你必须得到规则。在你这样做之前请大量测试。特别是因为这是不垃圾邮件规则(它会比垃圾邮件更多地发送垃圾邮件;考虑使用类似的测试统计规则:__TO_MANY)。
但是,您不能告诉用户为什么邮件被拒绝。 SMTP拒绝(例如来自Exim)可以具有自定义“为什么被拒绝”提示,这对于监管附件大小甚至通知用户他们发送过多邮件(可能是他们被感染)非常有用。您可以将Exim配置为在SMTP时运行SA(例如sa-exim),但是每次垃圾邮件拒绝都会向最终用户发送相同的消息。另一种选择是接受消息,然后将其反弹,包括SpamAssassin规则命中。要非常小心这种方法,因为它通常会导致backscatter。