AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 1171274
Accepted
Lasse Michael Mølgaard
Lasse Michael Mølgaard
Asked: 2025-01-20 18:39:54 +0800 CST2025-01-20 18:39:54 +0800 CST 2025-01-20 18:39:54 +0800 CST

在 SpamAssassin 中用一组词将邮件标记为垃圾邮件

  • 772

我知道如果邮件中出现特定的词语,SpamAssassin 可以为该邮件分配分数。

例如邮件中包含该单词bitcoin,则将 1.0 加到总分。

但是,如果制定一条规则,当且仅当整个集合与邮件匹配时,才将一组单词标记为垃圾邮件,那会怎样呢?

比如,如果您有字词internet和banking,然后interest如果其中一个字词出现在邮件中,则不会为其分配垃圾邮件值,但包含所有字词的邮件将获得垃圾邮件分数,例如包含以下消息的邮件:

Get huge interest through internet banking。

我之所以希望 SpamAssassin 匹配整个集合而不是单个单词,是因为我收到的钓鱼邮件看起来像合法邮件,但它们确实有一个共同的主题,例如“Brobizz”(丹麦版 E-ZPass)续订失败。

由于网络钓鱼邮件看起来与合法邮件完全一样,因此阻止所有包含这些词语而没有其他标准的邮件并不是一个好主意。

但是:这些词语和单独的规则(说明发件人邮件服务器的 IP 地址无法解析)的组合足以成为将邮件标记为垃圾邮件的理由。

那么是否可以只对一组单词分配分数?

spamassassin
  • 1 1 个回答
  • 153 Views

1 个回答

  • Voted
  1. Best Answer
    HBruijn
    2025-01-20T21:55:09+08:002025-01-20T21:55:09+08:00

    我认为您描述的正确语法是 在多个子条件/规则匹配时分配分数的meta规则:

    https://cwiki.apache.org/confluence/pages/viewpage.action?pageId=119547113#WritingRules-Metarules

    请注意,子规则以双下划线开头,_ 因此它们在运行后被视为没有分数,如第 2.4 节第 3 项所述。

    元规则也可以是算术的,但 2.4x 中元规则的原始实现中没有此功能。算术元规则可用于判断是否匹配了一定数量的子规则。例如,如果在主体中的任何地方发现 2 个或更多字符串“test1”、“test2”和“test3”,则将触发此元规则:

    body __LOCAL_TEST1    /\btest1\b/
    body __LOCAL_TEST2    /\btest2\b/
    body __LOCAL_TEST3    /\btest3\b/
    meta LOCAL_MULTIPLE_TESTS (( __LOCAL_TEST1 + __LOCAL_TEST2 + __LOCAL_TEST3) > 1)
    score LOCAL_MULTIPLE_TESTS 0.1
    

    因此,对其进行自定义以阻止正文中任何单词“互联网”、“银行”和“兴趣”的组合,您会得到如下结果:

    body __LOCAL_TEST1  /\binternet\b/
    body __LOCAL_TEST2  /\bbanking\b/
    body __LOCAL_TEST3  /\binterest\b/
    meta LOCAL_MULTIPLE_TESTS (( __LOCAL_TEST1 + __LOCAL_TEST2 + __LOCAL_TEST3) > 2)
    score LOCAL_MULTIPLE_TESTS 10
    
    • 3

相关问题

  • 让 Postfix 以两种方式处理垃圾邮件

  • 在 Postfix 中的 virtual_alias 上运行 SpamAssassin

  • 我可以在 Exchange 2007 的服务器端强制执行邮件规则吗?

  • 如何最小化 SpamAssassin (spamd) 内存使用

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve