关于创建Exchange传输规则(ETR)阻止特定收件人组合的技术咨询
创建Exchange传输规则(ETR)阻止特定收件人组合的技术咨询
嘿,这个需求太真实了——当你有两个域名相似的客户,不小心把敏感邮件同时发给两边可就麻烦了。我来给你拆解下怎么用Exchange传输规则(ETR)实现这个目标,顺便解决你遇到的条件限制问题。
首先得明确:Exchange图形界面的规则编辑器确实有个小限制——默认条件逻辑是「或(Any)」,而且不能直接重复添加同一个类型的条件(比如重复选「收件人包含域」)。不过咱们有两种办法绕开这个限制,完美实现你的需求:
方法一:用邮件头检查实现「与」逻辑(图形界面操作)
Exchange的邮件头里包含了所有收件人(TO/CC/BCC)的信息,咱们可以通过检查这些头来构建精确的「同时包含两个域」的条件:
- 新建传输规则,点击更多选项解锁高级设置
- 添加条件组,把逻辑设置为「任何以下条件满足」(覆盖TO+CC的两种混合场景)
- 第一个子条件组:设置逻辑为「所有以下条件满足」
- 选择「邮件头」→「包含这些词」,头名称填
To,关键词填@domainA.com - 再添加一个「邮件头」→「包含这些词」,头名称填
Cc,关键词填@domainB.com
- 选择「邮件头」→「包含这些词」,头名称填
- 第二个子条件组:同样设置逻辑为「所有以下条件满足」
- 选择「邮件头」→「包含这些词」,头名称填
To,关键词填@domainB.com - 再添加一个「邮件头」→「包含这些词」,头名称填
Cc,关键词填@domainA.com
- 选择「邮件头」→「包含这些词」,头名称填
- 第一个子条件组:设置逻辑为「所有以下条件满足」
- 设置规则动作:比如选择「拒绝邮件并包含说明」,输入提示文本(比如「禁止同时发送邮件给DomainA和DomainB的收件人」)
- 保存规则后,用测试邮件验证效果(记得测试TO+CC、CC+TO的混合情况)
方法二:用PowerShell创建规则(更灵活精准)
如果图形界面的操作太繁琐,PowerShell可以直接定义复杂的「与」逻辑,完全避开图形界面的限制:
场景1:阻止任何@domainA.com和@domainB.com的混合收件人
运行以下命令创建规则,会检查所有收件人(TO/CC/BCC)中是否同时存在两个域的地址:
New-TransportRule -Name "Block Mixed DomainA & DomainB Recipients" ` -RecipientFilter {((RecipientAddress -like "*@domainA.com") -and (RecipientAddress -like "*@domainB.com"))} ` -RejectMessageReasonText "禁止同时发送邮件给DomainA和DomainB的收件人" ` -Mode Enforce
场景2:仅阻止user@domainA.com和任何@domainB.com的混合收件人
如果你的需求更精准,只针对特定用户和目标域的组合,调整命令即可:
New-TransportRule -Name "Block user@domainA.com with DomainB Recipients" ` -RecipientFilter {((RecipientAddress -eq "user@domainA.com") -and (RecipientAddress -like "*@domainB.com"))} ` -RejectMessageReasonText "禁止同时发送邮件给user@domainA.com和DomainB的收件人" ` -Mode Enforce
一些注意事项
- 测试规则时,一定要用真实的收件人组合测试,包括BCC场景(Exchange规则默认可以检查BCC收件人)
- 根据你的需求调整规则的「发件人范围」,比如如果只限制内部发件人,添加
-FromScope "InOrganization"参数 - 如果你用的是Exchange Online(Office 365),PowerShell命令同样适用,只需要先连接到Exchange Online PowerShell即可
备注:内容来源于stack exchange,提问作者bendodge
相关产品推荐
相关产品推荐

