我正在运行本地 Exchange 2010,并使用以下传输规则检查发件人地址的文本模式:
^.+@(?=.*microsoft)(?=.*.com).*$
如果“microsoft”作为域或子域存在,并且以“.com”结尾,则上述正则表达式会被捕获。如果我想要,我可以完全省略“.com”,并将其保留为“.*”。以防所讨论的地址出于某种原因使用多个顶级域...
那么这有什么问题呢?使用 Regex Hero 之类的工具告诉我上述语法应该可以工作,但是当我将其添加到我的 Transportrule 中时,它似乎并没有按照要求执行。
答案1
经过进一步挖掘,我发现 Exchange 并不完全支持正则表达式,因此我尝试放弃所有内容并尝试使用其有限的语法:
(.*\W)(@*)microsoft(\W)(.*com)$
这将捕获以下地址:
- 微软
- 微软测试网
- 微软测试网
- 测试-microsoft.com
- 测试.microsoft.com
我知道第二和第三次匹配会被视为网络钓鱼,但不幸的是,有几个我信任的发件人使用这种模式......