我最近从很多域(太多到黑名单)收到大量垃圾邮件,其中发件人名称遵循以下模式:Name S.
所以名称后跟一个空格,然后是一个字母和最后一点。我想知道我是否可以在Spamassassin中实现这一点。考虑到这一点,这是我的问题:
标题的哪一部分包含发件人姓名?我猜测from
标题,但后缀只显示日志中的电子邮件地址,所以我有点困惑。
假设答案是1.是的,这是一个正确的Spamassassin规则/正确的正则表达式,用于我想要实现的目标:
header NAME_SPACE_LETTER_POINT=~/((?:[a-z][a-z]+))(\s+)([a-z])(\.)/
score NAME_SPACE_LETTER_POINT 5.0
提前感谢您对这些问题的任何建议/答案!
答案 0 :(得分:1)
语法几乎是正确的。它应该是:
header NAME_SPACE_LETTER_POINT From =~ /((?:[a-z][a-z]+))(\s+)([a-z])(\.)/
此外,正则表达式也是错误的,因为默认情况下它们区分大小写,所以它需要在末尾添加i
选项。它似乎也有太多括号,所以我把它们修剪了一下。
/([a-z][a-z]+\s+[a-z]\.)/i
它可能需要进一步限制,因为它匹配"名称S."在From字段中的任何一点,所以匹配完全有效的名称" Samuel L. Jackson",例如。
我认为你问题的第3部分有点主观。就个人而言,我不会给这个特定的规则一个非常高的分数,即使你进一步限制正则表达式,它仍然可能会遇到一些误报。如果该规则针对的是始终是垃圾邮件的特定字词/短语,那么我认为,将其标记为始终将其标记为垃圾邮件的评分非常高。