我已经在spamassassin上阅读了一段时间,学到了很多东西,但是我似乎无法找到一种方法来创建一个规则,其中第三方脚本可以为自定义规则执行。
这必须是基于用户而非全球的。
我想在域和电子邮件地址上运行其他验证。
我希望建立一个声誉系统,如果一个域或电子邮件地址与联系人列表和其他东西核对。
我已经考虑过修改配置文件来添加regex规则,但这似乎是一种复杂的方法。更可取的方案是运行一个第三方脚本,该脚本返回每个域和电子邮件地址的分数。
最佳答案
开箱即用,spamassassin没有这样的功能,但是既然你在编程网站上问过,我想你自己写一些代码并不是陌生的。
spamassassin中的插件工具就是为这类事情而设计的。您可以创建一段Perl代码,该代码将为SpamAssassin分析的每个消息调用,并且您可以访问Perl可以访问的所有内容。
特别是,查看调用外部程序并将其分析结果返回给spamassassin的pyzor plugin。这里有相当多的样板文件,但是您需要开始的部分是获得helper_app_pipe_open
调用的正确参数(从3.4.0版开始的第282行,这是我上面链接到的)。这些东西是可配置的,因此您甚至可以重新配置pyzor
到您自己程序的路径,作为概念的证明。注意,它需要接受一个check
参数和一些其他参数,以及来自标准输入上的临时文件的消息。
Mail::SpamAssassin::Plugin.pm包含插件api的pod文档。模块树中的其他文件也包含有用的文档;特别是,您可能希望参考Mail::SpamAssassin.pm和Mail::SpamAssassin::Conf.pm中的常规文档,以了解可以传递给插件的配置参数。
关于linux - 运行shell命令的SpamAssassin自定义规则,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/26139640/