传输规则 -> 文本模式正则表达式来捕获域和子域

传输规则 -> 文本模式正则表达式来捕获域和子域

我正在运行本地 Exchange 2010,并使用以下传输规则检查发件人地址的文本模式:

^.+@(?=.*microsoft)(?=.*.com).*$

如果“microsoft”作为域或子域存在,并且以“.com”结尾,则上述正则表达式会被捕获。如果我想要,我可以完全省略“.com”,并将其保留为“.*”。以防所讨论的地址出于某种原因使用多个顶级域...

那么这有什么问题呢?使用 Regex Hero 之类的工具告诉我上述语法应该可以工作,但是当我将其添加到我的 Transportrule 中时,它似乎并没有按照要求执行。

答案1

经过进一步挖掘,我发现 Exchange 并不完全支持正则表达式,因此我尝试放弃所有内容并尝试使用其有限的语法

(.*\W)(@*)microsoft(\W)(.*com)$

这将捕获以下地址:

  • 微软
  • 微软测试网
  • 微软测试网
  • 测试-microsoft.com
  • 测试.microsoft.com

我知道第二和第三次匹配会被视为网络钓鱼,但不幸的是,有几个我信任的发件人使用这种模式......

相关内容