我的公司已受到某些网络钓鱼者的攻击,这些网络钓鱼者在from标题中欺骗了我们的CEO联系人姓名,因为我们拥有SPF和DKIM,因此他们无法欺骗其实际电子邮件地址,否则将被阻止。所以他们发送的FROM头是:
John Doe
我希望能够过滤包含John Doe名称但不包含CEO实际电子邮件地址johndoe@mycompany.com的电子邮件。正则表达式有可能吗?
在回应评论,我不找任何输出,比赛只是是否被发现,以便它可以被用来确定邮件是否应该过滤与否。一些例子:
John Doe <johndoe@mycompany.com> <-- do not match this
John Doe <spoofer@validemailaddress.com> <-- match this
John Doe <asdf@aasdf.com> <-- match this
直到我尝试使用visualnotsobasic提供的答案之前,我才意识到这一点,但是正则表达式必须在RE2规范中。我进行了快速搜索,看来RE2前景并不乐观,所以我希望有一种解决方法...
答案 0 :(得分:1)
这可能对您有用。
((John Doe\s?)(<john.?doe|<\w+)@(?!(mycompany.com)).*>)
这允许电子邮件地址中的姓和名之间带有潜在的符号,例如john_doe@whatevermail.com等。
它将排除老板的真实电子邮件地址。
您可以在这里进行测试:
https://regex101.com/
答案 1 :(得分:0)
您可能要做的就是匹配不需要的内容,并使用alternation在组中捕获要保留的内容。
在有效的电子邮件是在第一capturing group
这将匹配:
John Doe <johndoe@mycompany\.com>|(John Doe <\S+@\S+>)
John Doe <johndoe@mycompany\.com>
匹配|
或(John Doe <\S+\S+>)
在第一个捕获组John Doe中进行捕获,后跟类似模式的电子邮件,该模式匹配1+个非空白字符\S+
和@,再匹配1+个非空白字符