【问题标题】:SpamAssassin custom rule that runs shell command运行 shell 命令的 SpamAssassin 自定义规则
【发布时间】:2014-10-01 10:49:41
【问题描述】:

我已经在 SpamAssassin 上阅读了一段时间并学到了很多东西,但我似乎无法找到一种方法来创建可以执行自定义规则的第 3 方脚本的规则。 这必须是基于用户而不是全球性的东西。

我想对域和电子邮件地址进行额外验证。

我希望建立一个信誉系统,在该系统中,是否根据联系人列表和其他内容检查域或电子邮件地址。

我考虑过修改配置文件以添加正则表达式规则,但这似乎是一种复杂的方法。更优选的方案是简单地运行一个返回每个域和电子邮件地址的分数的 3rd 方脚本。

【问题讨论】:

    标签: linux spamassassin


    【解决方案1】:

    开箱即用,SpamAssassin 没有这样的功能,但既然您在编程网站上提问,我认为您对自己编写一些代码并不陌生。

    SpamAssassin 中的插件工具就是为这类事情而设计的。您可以创建一段 Perl 代码,该代码会为 SpamAssassin 分析的每条消息调用,并且您可以访问 Perl 可以访问的所有内容。

    特别是查看pyzor plugin,它调用外部程序并将其分析结果返回给SpamAssassin。那里有相当多的样板文件,但您需要开始的部分是为helper_app_pipe_open 调用获取正确的参数(在版本 3.4.0 的第 282 行,这是我在上面链接的内容)。这些东西是可配置的,因此您甚至可以将pyzor 的路径重新配置到您自己的程序中作为概念证明。请注意,它需要接受 check 参数和其他一些参数,以及来自其标准输入的临时文件的消息。

    Mail::SpamAssassin::Plugin.pm 包含插件 API 的 POD 文档。模块树中的其他文件也包含有用的文档;特别是,您可能需要参考Mail::SpamAssassin.pmMail::SpamAssassin::Conf.pm 中的一般文档,以了解可以传递给插件的配置参数。

    【讨论】:

    • 添加一个调用 exec 的规则怎么样?我正在尝试将其作为用户配置完成,以便不需要对 SA 进行任何更改。
    • 那你为什么要在编程网站上发帖?但无论如何,我会重复使用pyzor 插件的想法,但让它调用你自己的检查工具。您可能需要一些包装以使其表现得像 pyzor 插件所期望的那样,但它不应该太难。
    【解决方案2】:

    开箱即用,有一个新的TxRep 插件可以自动识别您最近见过的发件人。还有whitelist and blacklist options的集合。

    如果您想自己实现某些东西,我想您很快就会发现exec 机制无法很好地扩展。也许尝试制作自己的DNSBL。这可以使用自定义代码和任何 DNS 服务器(例如 bind、dnsmasq 等)或为此目的设计的 DNS 服务器(例如RBLDNSD)来完成。 DnsBlocklists 上的 SA wiki 提供了如何将其挂接到 SA 的说明。

    通常,寻求这种解决方案的人没有正确配置 DNSBL。在尝试构建您自己的项目之前,我会先研究一下。

    【讨论】:

      猜你喜欢
      • 2021-04-07
      • 1970-01-01
      • 2020-02-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多