在 Exchange Online 中管理邮件流规则
在没有 Exchange Online 邮箱的 Exchange Online 组织或独立 Exchange Online Protection (EOP) 组织中,可以使用 Exchange 邮件流规则 (也称为传输规则) 查找通过组织的邮件的特定条件并对其执行操作。
本文介绍如何 创建、 复制、 调整顺序、 启用或禁用、 删除、 导入或导出 规则,以及 监视规则使用情况。
提示
若要确保规则按预期方式工作,请确保全面测试每个规则以及规则之间的交互。
开始前,有必要了解什么?
估计完成每个步骤的时间:5 分钟。
有关如何访问 Exchange 管理中心 (EAC) 的信息,请参阅 Exchange Online 中的 Exchange 管理中心。 若要连接到 Exchange Online PowerShell,请参阅连接到 Exchange Online PowerShell。 若要连接到独立 EOP PowerShell,请参阅 连接到独立 Exchange Online Protection PowerShell。
必须先分配有权限,然后才能执行这些过程。 若要查看所需的权限,请参阅 Exchange Online 中的功能权限中的“邮件流”条目。
有关可能适用于本文中的过程的键盘快捷方式的信息,请参阅 Exchange 管理中心的键盘快捷方式。
提示
是否有任何疑问? 在 Exchange 论坛中寻求帮助。 请访问 Exchange Online 或 ExchangeOnline Protection 中的论坛。
创建邮件流规则
可以在 EAC 或 PowerShell 中创建邮件流规则。 在 EAC 中,还可以通过复制现有规则来创建邮件流规则。
注意
创建或复制邮件流规则后,新规则可能需要 30 分钟或更长的时间才能应用于电子邮件。
使用 EAC 创建邮件流规则
EAC 允许通过选择模板或从头开始创建邮件流规则。
在 的新 EAC 中 https://admin.exchange.microsoft.com,转到 “邮件流>规则”。 或者,若要直接转到 “规则” 页,请使用 https://admin.exchange.microsoft.com/#/transportrules。
在 “规则 ”页上,使用以下选项之一创建规则:
- 若要从模板创建规则,请选择“ 添加规则 并从下拉列表中选择模板。
- 若要从头开始创建新规则,请选择“ 添加规则>创建新规则。
此时会打开“新建规则”向导。
在 “设置规则条件 ”页上,在“ 名称 ”框中输入规则的唯一名称,然后选择规则的条件、例外和操作:
如果...:从列表中选择条件,则应用此规则。
- 某些条件需要其他值。 例如,如果选择“ 发件人为...”,则还需要指定发件人地址。 如果要添加字词或短语,则不允许使用尾随空格。
- 若要添加更多条件,请选择“ 添加条件 然后重复此步骤。
- 选择 “删除条件 删除条件。
- 若要应用于组织中的所有邮件,请选择“ 应用于所有邮件” 条件。
执行以下操作...:从列表中选择一个操作。
- 某些操作需要其他值。 例如,如果选择 “将邮件转发到审批...”,则需要选择组织中的收件人。
- 若要添加更多操作,请选择“ 添加操作 然后重复此步骤。
- 选择 “删除操作 。删除操作。
if...除外:使用此设置可指定规则的任何例外。 可用异常与可用条件相同。
- 某些异常需要其他值。 例如,如果选择“ 发件人为...”,则还需要指定发件人地址。 如果要添加字词或短语,则不允许使用尾随空格。
- 若要添加更多异常,请选择“ 添加例外 然后重复此步骤。
- 选择 “删除异常 。删除异常。
完成“ 设置规则条件 ”页后,选择“ 下一步”。
在 “设置规则设置” 页上,配置以下设置:
规则模式:选择以下值之一:
- 强制:打开规则并立即开始处理消息。 对规则执行所有操作。
- 使用策略提示进行测试:启用规则,任何策略提示操作 ( 发送策略 提示) 通知发件人 ,但不执行与邮件传递相关的操作。
- 测试不带策略提示:仅强制实施 “生成事件报告 ”操作。 不会执行与消息传递相关的操作。
严重性:为此规则选择严重性级别。 规则匹配项在活动报告中按严重性级别分组。 严重性级别只是一个筛选器,使报表更易于使用。 严重性级别对处理规则的优先级没有影响。
- 未指定
- 低
- 中
- High
- 不审核:规则匹配项不会出现在规则报告中。
启用此规则 并 停用此规则:使用这些设置在特定时间段内打开和关闭规则。 如果在日期激活 此规则 之前创建规则,则会启用该规则,但不会对其进行处理。 在“ 停用此规则 ”日期后,该规则将保持启用状态,但不会进行处理。
停止处理更多规则:使用此设置可阻止在此规则之后将其他规则应用于邮件。 如果邮件由此规则处理,则不会为该邮件处理后续规则。
如果规则处理未完成,则延迟消息:指定在规则处理无法完成时应如何处理消息。 默认情况下,忽略该规则,并继续处理其他规则的消息。 如果选择此选项,则会重新提交消息进行处理。
匹配邮件中的发件人地址:指定由检查发件人电子邮件地址的条件或例外评估的电子邮件地址:
- 标头:仅检查邮件头。
- 信封:仅检查 SMTP 邮件信封。
- 标头或信封:检查邮件头和 SMTP 邮件信封。
注释:向规则添加可选注释。
完成“ 设置规则设置 ”页后,选择“ 下一步”。
在“ 查看并完成 ”页上,验证设置。 选择“返回”或使用“编辑规则条件”或“编辑规则设置”链接来修改设置。
在“ 审阅和完成 ”页上完成操作后,选择“ 完成”。
在确认页上,选择“ 完成”。
使用 Exchange Online PowerShell 创建邮件流规则
以下示例创建一个新的邮件流规则,该规则在发送到 Sales Department 通讯组的外部邮件的“主题”行前附加文本 External message to Sales DG:
:
New-TransportRule -Name "Mark messages from the Internet to Sales DG" -FromScope NotInOrganization -SentTo "Sales Department" -PrependSubject "External message to Sales DG:"
有关语法和参数的详细信息,请参阅 New-TransportRule。
注意
上一个示例中使用的参数和操作仅用于说明。 查看所有可用的邮件流规则条件和操作,以确定哪些条件和操作符合要求。
使用 EAC 复制邮件流规则
在 的新 EAC 中 https://admin.exchange.microsoft.com,转到 “邮件流>规则”。 或者,若要直接转到 “规则” 页,请使用 https://admin.exchange.microsoft.com/#/transportrules。
在“ 规则 ”页上,通过选择“ 状态” 值旁边的单选按钮来选择规则,然后选择出现的“ 复制 操作。
在打开的“创建”<规则名称>“浮出控件的副本中,”条件“和”设置“选项卡上的值将填充复制的规则的设置。 默认名称为“规则名称>副本<”。 可以更改任何规则设置。 可用设置与创建新规则相同,如 使用 EAC 创建邮件流规则 部分中所述。
编辑完规则设置后,选择浮出控件底部的“ 复制 ”。
在打开的确认浮出控件中,选择“ 复制”。
在打开的成功浮出控件中,选择“ 关闭 X”。
如何知道已成功创建邮件流规则?
若要验证是否已成功创建邮件流规则,请执行以下步骤之一:
在 EAC https://admin.exchange.microsoft.com/#/transportrules的“规则”页上,验证是否已列出创建或复制的邮件流规则。
在 Exchange Online PowerShell 中,将“新建规则名称”>替换为<创建或复制的规则的名称,并运行以下命令:
Get-TransportRule -Identity "<New Rule Name>""
查看或修改邮件流规则
注意
修改邮件流规则后,更新后的规则可能需要 30 分钟或更长的时间才能应用于电子邮件。
使用 EAC 查看或修改邮件流规则
- 在 的新 EAC 中 https://admin.exchange.microsoft.com,转到 “邮件流>规则”。 或者,若要直接转到 “规则” 页,请使用 https://admin.exchange.microsoft.com/#/transportrules。
- 在“ 规则” 页上,单击该名称旁边的圆形复选框以外的任何位置,从列表中选择规则。
- 在打开的详细信息浮出控件中,可以通过选择浮出控件顶部的 “编辑规则条件” 和“ 编辑规则设置” 来查看现有设置并进行更改。 可用设置与创建新规则相同,如 使用 EAC 创建邮件流规则 部分中所述。
使用 Exchange Online PowerShell 查看或修改邮件流规则
以下示例返回组织中所有邮件流规则的摘要列表:
Get-TransportRule
若要查看有关特定邮件流规则的详细信息,请提供规则的唯一标识符 (例如 Name、DistinguishedName 或 GUID) 。 将输出发送到 Format-List cmdlet 以设置属性的格式非常有用。
以下示例返回指定邮件流规则的所有属性:
Get-TransportRule -Identity "Sender is a member of marketing" | Format-List
以下示例向名为“发件人是市场营销成员”的现有规则添加一个例外,使其不适用于用户 Kelly Rollin 发送的邮件:
Set-TransportRule -Identity "Sender is a member of marketing" -ExceptIfFrom "Kelly Rollin"
有关语法和参数的详细信息,请参阅 Set-TransportRule。
如何知道已成功修改邮件流规则?
若要验证是否已成功修改邮件流规则,请执行以下步骤之一:
在 EAC https://admin.exchange.microsoft.com/#/transportrules的“规则”页上,单击“状态”值旁边的单选按钮以外的任何位置,选择修改的规则。 在打开的详细信息浮出控件中,确认设置。
在 Exchange Online PowerShell 中,将“规则名称”>替换为<修改的规则的名称,并运行以下命令:
Get-TransportRule -Identity "<Rule Name>" | Format-List Name,ExceptIfFrom
设置邮件流规则的优先级
在 EAC 的“ 规则 ”页上,邮件流规则按处理顺序显示。 列表顶部的规则具有 优先级 值 0,并首先进行处理。
使用 EAC 设置规则的优先级
- 在 的 EAC 中 https://admin.exchange.microsoft.com,转到 “邮件流>规则”。 或者,若要直接转到 “规则” 页,请使用 https://admin.exchange.microsoft.com/#/transportrules。
- 在“ 规则 ”页上,通过选择 “状态” 值旁边的单选按钮来选择规则,然后选择“ 上移 ”或“ 下移 ”操作,将规则向上或向下移动列表。
使用 Exchange Online PowerShell 设置规则的优先级
以下示例将指定邮件流规则的优先级设置为 2:
Set-TransportRule -Identity "Sender is a member of Marketing" -Priority "2"
有关语法和参数的详细信息,请参阅 Set-TransportRule。
如何知道已成功设置邮件流规则的优先级
若要验证是否已成功设置邮件流规则的优先级,请执行以下步骤之一:
在 EAC https://admin.exchange.microsoft.com/#/transportrules的“规则”页上,验证规则的顺序。
在 Exchange Online PowerShell 中,运行以下命令:
Get-TransportRule | Format-List Name,Priority
启用或禁用邮件流规则
默认情况下,使用 EAC 创建邮件流规则时,会禁用邮件流规则的状态。 这样做是为了在最终启用规则之前,可以再查看一次规则。 可以在规则创建完成后启用规则。
使用 EAC 启用或禁用邮件流规则
- 在 的 EAC 中 https://admin.exchange.microsoft.com,转到 “邮件流>规则”。 或者,若要直接转到 “规则” 页,请使用 https://admin.exchange.microsoft.com/#/transportrules。
- 在“ 规则 ”页上,单击行中除名称旁边的单选按钮以外的任意位置,选择规则。 规则的 “状态” 值为 “启用” 或 “已禁用”。
- 在打开的详细信息浮出控件中,使用浮出控件顶部附近的 “启用或禁用规则 ”部分中的开关启用或禁用规则。
使用 Exchange Online PowerShell 启用或禁用邮件流规则
以下示例禁用指定的邮件流规则:
Disable-TransportRule -Identity "Sender is a member of marketing"
以下示例启用指定的邮件流规则:
Enable-TransportRule -Identity "Sender is a member of marketing"
有关详细语法和参数信息,请参阅 Disable-TransportRule 和 Enable-TransportRule。
如何知道已成功启用或禁用邮件流规则?
若要验证是否已成功启用或禁用邮件流规则,请执行以下步骤之一:
在 EAC https://admin.exchange.microsoft.com/#/transportrules的“规则”页上,验证“状态”列中的值。
在 Exchange Online PowerShell 中运行以下命令,返回组织中所有规则及其状态值的列表:
Get-TransportRule | Format-Table Name,State
删除邮件流规则
使用 EAC 删除邮件流规则
- 在 的 EAC 中 https://admin.exchange.microsoft.com,转到 “邮件流>规则”。 或者,若要直接转到 “规则” 页,请使用 https://admin.exchange.microsoft.com/#/transportrules。
- 在 “规则 ”页上,通过选择 “状态” 值旁边的单选按钮来选择规则,然后选择“ 删除 显示的操作。
- 在打开的确认浮出控件中,选择“ 确认”。
使用 Exchange Online PowerShell 删除邮件流规则
以下示例删除指定的邮件流规则:
Remove-TransportRule -Identity "Sender is a member of marketing"
有关语法和参数的详细信息,请参阅 Remove-TransportRule。
如何知道已成功删除邮件流规则?
若要验证是否已成功删除邮件流规则,请执行以下步骤之一:
在 EAC https://admin.exchange.microsoft.com/#/transportrules的“规则”页上,验证已删除的规则是否不再列出。
在 Exchange Online PowerShell 中运行以下命令,并验证已删除的规则是否不再列出:
Get-TransportRule
监视规则使用情况
可以使用 EAC 中的 Exchange 传输规则报表 检查每个规则的匹配次数。 对于要包含在报表中的规则,规则不能具有 “严重性 ”值“ ”未审核 “ (所有其他值都正常) 。 可以联机查看报表,或将报表数据下载到 .csv 文件。
注意
虽然大部分数据会在 24 小时内出现在报告中,但有些数据可能需要长达 5 天才会出现。
- 在 的 EAC 中 https://admin.exchange.microsoft.com,转到 “报告>邮件流”。 或者,若要直接转到 “邮件流报表 ”页,请使用 https://admin.exchange.microsoft.com/#/reports/mailflowreportsmain。
- 在 “邮件流报表 ”页上,找到并选择“ Exchange 传输规则报表”。
有关报表的详细信息,请参阅 Exchange Online 中新的 Exchange 管理中心中的 Exchange 传输规则报表。
在 Exchange Online 中导入或导出邮件流规则集合
使用 Exchange Online PowerShell 中的 Export-TransportRuleCollection cmdlet 将组织中的所有邮件流规则导出到 XML 文件。 有关详细信息,请参阅 Export-TransportRuleCollection。
Import-TransportRuleCollection cmdlet 将从 Exchange Online PowerShell 中弃用。 若要在 Exchange Online PowerShell 中手动导入邮件流规则集合 XML 文件,请执行以下步骤:
使用 Export-TransportRuleCollection cmdlet 备份所有现有邮件流规则, (下一步删除所有现有邮件流规则,就像 Import-TransportRuleCollection cmdlet) 一样。 例如:
$file = Export-TransportRuleCollection [System.IO.File]::WriteAllBytes('C:\MailFlowRuleCollections\BackupRuleCollection.xml', $file.FileData)
通过运行以下命令删除组织中所有现有的邮件流规则:
Get-TransportRule | foreach {Remove-TransportRule $_.Guid -Confirm:$false}
将以下文本复制到记事本:
if ((Get-TransportRule).Count -ne 0) { Write-Host "Please remove your current mail flow rules first." return } [xml]$xml = Get-Content "C:\MailFlowRuleCollections\RuleCollectionToImport.xml" $rulesToImport = $xml.SelectNodes("//rules/rule") if ($rulesToImport.Count -eq 0) { Write-Host "There are no mail flow rules to be imported." return } Write-Host "Importing $($rulesToImport.Count) mail flow rules." $index = 0 foreach ($rule in $rulesToImport) { $index++ Write-Host "Importing rule '$($rule.Name)' $index/$($rulesToImport.Count)." Invoke-Expression $($rule.version.commandBlock.InnerText) | Out-Null }
使用要导入的邮件流规则 XML 集合的路径和文件名更新以下行:
[xml]$xml = Get-Content "C:\MailFlowRuleCollections\RuleCollectionToImport.xml"
将文件另存为 .ps1,) 等
C:\Data\Import-Rules.ps1
易于查找 (的位置。在 PowerShell 中,使用以下语法运行脚本:
& "<Path to script file>\<FileName>.ps1"
例如:
& "C:\Data\Import-Rules.ps1"