SpamAssassin - 具有多个规则的自定义过滤器?

SpamAssassin - custom filter with multiple rules?

我正在尝试设置一个自定义 SpamAssassin 过滤器来处理我们从 GMail 和 Hotmail 帐户收到的大量 SEO 和网络开发垃圾邮件 - 理想情况下,在服务器范围内,因为该服务器上托管了多封邮件.我已经针对这些垃圾邮件的数千个示例对 SA 进行了训练,但 SA 通常得分低于垃圾邮件阈值,因为它们通过了所有其他测试(SPF、RBL 检查等),即使贝叶斯过滤器捕获了它们。

我已将以下内容添加到我的 /etc/mail/spamassassin/local.cf 文件中:

# GMAIL & HOTMAIL SEO SPAM
header      GMAIL_HOTMAIL_SEO_SPAM  From =~ /\@gmail\.com|\@hotmail\.com|\@outlook\.com/i
body        GMAIL_HOTMAIL_SEO_SPAM      /seo|india/i
score GMAIL_HOTMAIL_SEO_SPAM          15
describe GMAIL_HOTMAIL_SEO_SPAM Web dev and SEO spam from GMail & Hotmail

显然,目标是捕获同时匹配 "header" 和 "body" 规则的消息 - 起初它似乎有效。当我从包含 "body" 规则中的单词的 GMail 和 Hotmail 帐户向该服务器上的帐户发送测试邮件时,过滤器被触发 - 当我从相同的 GMail 和 Hotmail 帐户发送邮件时没有任何单词"body" 规则,他们没有触发过滤器。

但是当我从 non-GMail/Hotmail 帐户发送一条包含 "body" 规则中的单词之一的测试消息时,这也会触发过滤器。出于某种原因,"header" 规则似乎仅在 "body" 规则中的条件也得到满足时才会触发过滤器 - 但反之亦然,即使满足条件,"body" 规则也会触发不符合 "header" 规则。

知道如何让它正常工作吗?

再 testing/searching 之后,我设法让它使用元规则:

# GMAIL & HOTMAIL SEO SPAM USING META RULES
header      __GMAIL_HOTMAIL_SPAM_FROM   From =~ /\@gmail\.com|\@hotmail\.com|\@outlook\.com/i
body        __GMAIL_HOTMAIL_SPAM_BODY       /india|seo proposal|seo quote|top ranking guaranteed|front page of google|top in google|google 1st page|guaranteed 1st page|top rankings on google|top ranking on google|top rank in google|top 10 positions in google|top 3 positions|1st ranking on google|1st page of google|1st page on google|1st position in Google|google page 1|ranking proposal/i
meta    GMAIL_HOTMAIL_SPAM __GMAIL_HOTMAIL_SPAM_FROM && __GMAIL_HOTMAIL_SPAM_BODY
score   GMAIL_HOTMAIL_SPAM  15

来自和正文规则中的双下划线是为了防止这些规则被单独应用 - 没有它们,这些规则将被应用并添加“1.0”的分数。