Sun Java System Messaging Server 6 2005Q4 管理指南

支持 Sieve 扩展

除了标准的 Sieve 功能之外,Messaging Server 还提供了许多扩展支持,包括 addheaderaddtagspamtestspamadjust向垃圾邮件中添加包含 SpamAssassin 分数的标题向主题行添加 SpamAssassin 结果字符串中介绍了 addheaderaddtag

这些扩展操作使管理员可以设置不同的阈值,并可以设置将覆盖 SpamAssassin 结论的空白列表。甚至可以将二者组合以产生不同的阈值,这取决于谁发送了特定邮件。spamadjust 是非标准操作。ftp://ftp.isi.edu/in-notes/rfc3685.txt 中介绍了 spamtest

使用带有 "i;ascii-numeric" 比较器的 Sieve [RELATIONAL] 扩展,spamtest 可用于将 SpamAssassin 分数与特定值进行比较。SpamAssassin 分数通常为实数,但是 spamtest 首先将分数舍入为最接近的整数,强制此分数为介于 0 和 10 之间的整数值。将小于 0 的值强制增加为 0,大于 10 的值强制缩小为 10。最后,附加由 Messaging Server 维护的文本字符串,以产生 spamtest 测试可以得到的测试字符串。

spamadjust 用于调整当前的垃圾邮件分数。此操作采用了一个字符串参数,该参数已扫描为实数值。此值用于调整当前的垃圾邮件分数。整个字符串也将附加到当前的分数文本字符串。在以下所示的示例中,该字符串为 "undisclosed recipients"。

允许执行多次 spamadjust 操作;每次操作的结果均将被添加至当前分数。再次说明,分数值始终从 0 开始。允许使用已签名的数字值,可以降低当前的分数,也可以增加当前的分数。spamadjust 没有 require 分句;但是应列出 spamtest 扩展。

例如,可将 spamadjust 与设置为 2 的 SpamAssassin MODE 结合使用,如下所示:

spamfilterX_string_action=data:,require ["spamtest"];spamadjust "$U";

系统级别的 Sieve 过滤器将检查特定类型的标题,如果找到,则将 SpamAssassin 值增加 5,从而可以修改 SpamAssassin 分数。


spamfilter1_string_action=require "spamtest";  \
if header :contains ["to", "cc", "bcc", "resent-to", "resent-cc", \
   "resent-bcc"]  ["<undisclosed recipients>", "undisclosed.recipients"]  \
{spamadjust "+5 undisclosed recipients";}

最后,用户级别的 Sieve 脚本可以测试结果值、放弃确定为垃圾邮件的邮件、归档可能为垃圾邮件的邮件,并且使来自本地域地址的邮件可以通过以下语句传递:


spamfilter1_string_action=require ["spamtest", "relational",  \
"comparator-i;ascii-numeric", "fileinto"];                   \
if anyof (address :matches "from" ["*@siroe.com",            \
                                   "*@*.siroe.com"])         \
    {keep;}                                                  \
elsif spamtest :value "ge" :comparator "i;ascii-numeric" "8" \
    {discard;}                                               \
elsif spamtest :value "ge" :comparator "i;ascii-numeric" "5" \
    {fileinfo "spam-likely";}                                \
else                                                         \
   {keep;}