Spamassassin-按当天发送的时间得分

问题描述 投票:0回答:1

是否可以为某些小时之间发送的邮件分配分数。我发现半夜发送了很多垃圾邮件,因此想给凌晨2点到5点之间的任何东西打2或3分。

spam spamassassin
1个回答
0
投票

是,但是会变得凌乱。在开始之前,请验证SA的主要防御措施是否正确设置。

如果不足,则应尝试:

  • RelayCountry plugin惩罚您从未与之交谈的国家/地区>
  • TextCat plugin以区别您从未使用过的语言
  • 如果所有方法都失败了,那么您可以尝试所建议的方法。继续阅读。


不要忘记时区。因此,您不能使用Date标头。我要概述的解决方案不适用于会话跨越太多时区的部署,并且您必须确保MX记录服务器都一致且在同一时区。请注意,这里的夏令时可能会令人讨厌

确定接收基础结构已添加但已添加的中继之前

SpamAssassin运行(因此SA可以看到它)。这将显示为电子邮件顶部附近的Received标头。再次确保SpamAssassin实际可见。您的IMAP服务器添加的Received标头将不可见。

您可能已将SpamAssassin配置为运行之前

,将任何中继标记在消息中。 如果是这种情况,请不要继续进行,因为您不能可靠地确定本地时间。

好的,抛开所有警告,这是一个示例Received header:

Received: from external-host.example.com
        (external-host.example.com [198.51.100.25])
        by mx.mydomain with ESMTPS id ABC123DEF456;
        Fri, 13 Mar 2020 12:34:56 -0400 (EDT)

这必须是您的系统添加的标头,否则可能具有不同的时区,甚至可能是伪造的时间戳。

与规则相匹配,您可以清楚地将自己归因于自己(惯例是用姓名的首字母开头):

header   CL_RCVD_WEE_HOURS Received =~ /\sby\smx\.mydomain\swith\s[^:]{9,64}+:(?<=[0 ][2-4]:)[0-9:]{5}\s-0[45]00\s/
describe CL_RCVD_WEE_HOURS Received by our mx.mydomain relay between 2a and 5a EST/EDT
score    CL_RCVD_WEE_HOURS 0.500

浏览该正则表达式(另请参见interactive explanation at Regex101:]

  • 首先,您需要验证它是您的中继,并与名称匹配:by mx.mydomain with
  • 然后,向前跳过9-64个非冒号字符(很快,没有任何回溯,因此为+符号)(您需要验证服务器在此处没有任何冒号)
  • 真正的肉在后面,(因为我们实际上是为了提高速度而跳过一个小时),它寻找前导零(或空格),然后是2、3或4(而不是5,因为我们不不想比赛时间像05:59:59)
  • 最后,进行完整性检查以确保我们选择的时区正确。我假设您在美国东海岸,根据夏令时是否有效,它是-0400或-0500 []
  • 因此,您需要更改服务器名称,检查冒号技巧是否适用于您的中继,并更改时区正则表达式。

    我也给这个分数比您想要的低。从低处开始,然后根据需要缓慢升高。 3.000是非常高的价值。

© www.soinside.com 2019 - 2024. All rights reserved.