当前位置: 首页 > 工具软件 > SpamAssassin > 使用案例 >

SPAMASSASSIN 中文规则 (改进自CCERT Chinese_rules.cf )

况博容
2023-12-01

SPAMASSASSIN 中文规则 (改进自CCERT Chinese_rules.cf)

  • 最近抽空看了下spamassassin上的中文规则,发现对中文规则的支持主要来自ccert的一个很久以前的版本,已经很久没有更新过也没法从其网站上下载了,不知是不是团队已经解散了。后来在GITHUB上找到一个,下载后试用了一下,发现其对某些中文识别有问题,后来调试了很久,终于解决了这个问题。
    原来ccert版本中对中文直接用的UTF-8编码,在spamassassin中(我用的是centos7自带版本),有可能出现不能正确识别某些中文词语(如“密码”)就不行,仔细研究后发现,spamassassin用的是perl regex 正则匹配来识别关键词,如果用原生字符编码,存在解码的问题,可能出错,如果直接用“\x{xxxx}"这种方式就完全没有问题,因此把Chinese_rules.cf中的正则表达式中的汉字全部用这个方式替换了。
    另外在替换过程中发现perl的regex中对替换目标有个选项 e 很有用,可以在替换选项里直接用perl的函数或表达式,如
s/\\u([0-9A-F]{4})/pack('U',hex(${1}))/eg

就可以直接把想要替换的内容换成需要的内容,很方便替换工作。

header CN_SUBJECT_1             Subject =~ /\x{4F18}\x{60E0}/
describe CN_SUBJECT_1           Subject contains "优惠"
score CN_SUBJECT_1              1.254
 类似资料: