我正在CentOS上磨光我的CentOS过滤器。在我得到*.link和.eu域之后,我喜欢用超过100个字符标记非常长的域字符串。
这些条件是:
我想出了这个:
body LONG_URL (https?:\/\/)[^,;\"\'<\s$]{100,}
describe LONG_URL URL with over 100 characters
score LONG_URL 0.5它在REGEX测试器中工作,但在SpamAssassin中不工作
发布于 2014-10-21 05:56:50
您想要编写一个测试,而不是body测试。
发布于 2014-11-13 22:05:04
要解决新的TLD问题,确实需要一个身体规则。正如您前面所写的,存在一些语法问题和一些不必要的计算开销。试一试:
body YELLO_LONG_BODY_URL m@\bhttps?://[^\"\'<\s$]{100}@i
describe YELLO_LONG_BODY_URL 100+ char URL, https://stackoverflow.com/a/26919318
score YELLO_LONG_BODY_URL 0.1这在技术上是可行的,不过我相信你会发现它会在很多非垃圾邮件,特别是营销邮件上触发,特别是如果你把它限制在100个字符(这太小了!)我去掉了逗号&分号,因为它们可能是URL的一部分,合法消息的URL长度只有一个字符太长,所以您可能对m@\bhttps?://\S{100}@i没有意见。
警告:我以对抗垃圾邮件为生,而且有大量的数据在我的指尖。你会击中更多的非垃圾邮件(“火腿”)比垃圾邮件以下128个字符。没有一个大小范围会有一个非常好的垃圾邮件:哈姆比率;一个S/O,又名精密度,可能是可以接受的,但你真的想接近1.000。根据我的测试,最好的范围是192-256个字符,但即使这样也太弱了(S/O = 0.862),没有多大用处。几乎没有垃圾邮件使用超过1024个字符的链接(S/O = 0.057)。
我改了这条规则的名字。当你的规则出了问题,“信用”变成“责难”的时候,你的规则就能很容易地被识别为你的(而不是上游的),这是很好的。我甚至将这个答案链接到规则描述中,这样您的用户就可以了解更多信息。
https://stackoverflow.com/questions/26478828
复制相似问题