如何在SpamAssassin中自动拦截来自纯数字域名的垃圾邮件?
如何在SpamAssassin中自动拦截来自纯数字域名的垃圾邮件?
我太懂你手动一个个加域名的崩溃了——纯数字域名的垃圾邮件就像割不完的韭菜,手动维护拦截列表完全是个无底洞!别担心,用SpamAssassin的自定义正则规则就能一次性解决这个问题,下面给你一步步说怎么做:
1. 找到你的SpamAssassin自定义规则文件
一般来说,全局规则文件是/etc/mail/spamassassin/local.cf;如果是个人用户,也可能是~/.spamassassin/user_prefs。根据自己的系统路径找到它,用文本编辑器打开就行。
2. 添加自定义正则规则
在文件末尾加上下面这几行规则,专门针对纯数字域名的垃圾邮件:
# 检测Received头中来自纯数字.com域名的邮件 header __PURE_NUMERIC_DOMAIN Received =~ /by (\d+)\.com with/ # 给匹配到的邮件加垃圾分(分数可按需调整,默认5分以上会被标记为垃圾) score PURE_NUMERIC_DOMAIN_SPAM 5.0 # 规则描述,方便在邮件头里看到对应标记 describe PURE_NUMERIC_DOMAIN_SPAM 邮件来自纯数字.com域名,疑似垃圾邮件 # 关联临时规则与实际得分规则 meta PURE_NUMERIC_DOMAIN_SPAM __PURE_NUMERIC_DOMAIN
3. (可选)扩展到其他后缀的纯数字域名
如果你发现除了.com,还有.net、.org这类后缀的纯数字垃圾域名,可以把正则改成更通用的版本:
header __PURE_NUMERIC_DOMAIN Received =~ /by (\d+)\.[a-z]{2,} with/
这个正则能匹配任何纯数字前缀+2个及以上字母后缀的域名(比如23821.net、12345.org都能命中)。
4. 测试规则是否生效
找一封你收到的纯数字域名垃圾邮件,保存成test_email.txt,然后用命令行测试:
spamassassin -t < test_email.txt
在输出的邮件头里如果能看到PURE_NUMERIC_DOMAIN_SPAM的标记,就说明规则已经生效啦!
小提示
- 分数可以灵活调整:如果这类邮件100%是垃圾,直接把分数调到10分就能强制拦截;如果担心偶尔误判,就把分数调低,和其他垃圾规则配合判断。
- 要是你想匹配发件人邮箱的纯数字域名(而非Received头),可以把规则里的
Received改成From,正则调整为/@(\d+)\.[a-z]{2,}/,这样就能精准命中发件人域名是纯数字的邮件。
备注:内容来源于stack exchange,提问作者PatriceJ
相关产品推荐
相关产品推荐

