在基于云的组织中,可以使用 Exchange 邮件流规则 (也称为传输规则) 来查找通过组织传递的邮件的特定条件并对其执行作。
本文介绍如何 创建、 复制、 调整顺序、 启用或禁用、 删除、 导入或导出 规则,以及 监视规则使用情况。
提示
若要确保规则按预期方式工作,请确保全面测试每个规则以及规则之间的交互。
开始前,有必要了解什么?
估计完成每个步骤的时间:5 分钟。
有关如何 (EAC) 访问 Exchange 管理中心的信息,请参阅 Exchange Online 中的 Exchange 管理中心。 若要连接到 Exchange Online PowerShell,请参阅连接到 Exchange Online PowerShell。
必须先分配有权限,然后才能执行这些过程。 若要查看所需的权限,请参阅 Exchange Online 中的功能权限中的“邮件流”条目。
有关可能适用于本文中的过程的键盘快捷方式的信息,请参阅 Exchange 管理中心的键盘快捷方式。
提示
是否有任何疑问? 在 Exchange Online 的Exchange Online论坛中寻求帮助。
创建邮件流规则
可以在 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。
Exchange Online PowerShell 中将弃用 Import-TransportRuleCollection cmdlet。 若要在 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"