You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何过滤纯文本垃圾邮件?求助正则表达式过滤方案

搞定纯文本带链接的漏网垃圾邮件:实用过滤思路

嘿,我之前也碰到过这种表面没规律但硬带链接的纯文本垃圾邮件,折腾了一阵总结了几个靠谱的方向,分享给你:

核心思路:抓链接的“猫腻”+ 文本的“反常”

这类邮件看似无迹可寻,但带链接是绕不开的核心特征,结合文本里的异常点组合过滤,比单一正则靠谱太多。

1. 死磕链接的可疑特征

垃圾邮件的链接几乎都有破绽,从这几个角度挖:

  • 仿冒正规域名:
    很多垃圾邮件会用字符替换模仿大厂域名,比如amaz0n.com(0代替o)、paypa1.com(1代替l),可以写正则匹配这类仿冒模式。比如针对亚马逊的:
    \b(amaz[0o]n|amazon\.cn|amazon\.com)\b
    
    另外,免费小众域名(比如.tk、.ml、.ga这类)也是重灾区,维护个可疑后缀列表,用正则扫:
    https?://\S+\.(tk|ml|ga|cf|gq)\b
    
  • 诱导性参数/关键词:
    链接里常带click、track、verify、redirect这类诱导跳转的词,或者一堆乱码参数,正则可以抓:
    https?://\S+(click|track|verify|redirect|unsubscribe)\S+
    
  • 短链接跳转:
    虽然正常短链接也不少,但垃圾邮件爱用bit.ly、tinyurl.com这类短链藏真实地址,结合前后的诱导文本(比如“点击领取”“立即查看”)一起判断:
    (点击领取|立即查看|限时优惠)\s*https?://(bit\.ly|tinyurl\.com)\S+
    

2. 捕捉文本的反常信号

纯文本垃圾邮件的文本细节里藏着很多线索:

  • 高频诱导词汇堆砌:
    反复出现“免费”“中奖”“返利”“限时”“紧急”这类词,密度远高于正常邮件,用正则匹配多个这类词的组合:
    \b(免费|中奖|返利|限时|紧急|领取|点击)\b.*\b(免费|中奖|返利|限时|紧急|领取|点击)\b
    
  • 无意义重复/语法混乱:
    很多是机器生成的凑数内容,比如连续重复的词、不通顺的句子,正则可以抓重复模式:
    (\b\w+\b)\s+\1\s+\1  # 匹配连续重复三次的词汇
    
  • 泛化称呼无个性化:
    开头全是“尊敬的用户”“亲爱的朋友”这类没具体姓名的泛称,结合链接一起判断:
    ^(尊敬的用户|亲爱的朋友|您好)\s.*https?://\S+
    

3. 组合规则,别用单一正则硬刚

单一正则很容易误杀正常邮件,建议用多规则加权的方式:

  • 比如:链接匹配可疑域名(+3分)+ 文本包含2个以上诱导词(+2分)+ 无具体称呼(+1分),总分超过4分就标记为垃圾。
  • 另外,一定要定期更新你的可疑域名和词汇列表,垃圾邮件的套路一直在变,得跟着调整。

4. 两个辅助小技巧

  • 解析链接的真实跳转地址:很多短链背后是恶意域名,提取链接后解析真实地址,再用正则匹配黑名单域名。
  • 统计链接数量:正常纯文本邮件很少带链接,甚至不带,如果一封纯文本邮件里有2个以上链接,直接拉高高可疑度。

内容的提问来源于stack exchange,提问作者G H

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.20 08:12:20