Exchange Server中邮件流规则的过程
邮件流规则(也称为传输规则)识别通过 Exchange 组织传递的邮件并对其进行操作。 有关邮件流规则的详细信息,请参阅 Exchange Server 中的邮件流规则。
在邮箱服务器上,可以在 Exchange 管理中心 (EAC) 和 Exchange 命令行管理程序 中管理邮件流规则。 在边缘传输服务器上,只能使用 Exchange 命令行管理程序。
提示
验证规则是否按预期方式工作。 确保全面测试每个规则以及规则之间的交互。
在开始之前,您需要知道什么?
估计完成每个步骤的时间:5 分钟。
有关 EAC 的详细信息,请参阅 Exchange Server 中的 Exchange 管理中心。 若要了解如何在本地 Exchange 组织中打开 Exchange 命令行管理程序,请参阅 Open the Exchange Management Shell。
你必须先获得权限,然后才能执行此过程或多个过程。 若要查看所需的权限,请参阅 Exchange Server (Exchange Server) 中的邮件策略和符合性权限中的“邮件流规则”条目,或Exchange Online中的功能权限。
若要了解本主题中的过程可能适用的键盘快捷键,请参阅 Exchange 管理中心内的键盘快捷键。
提示
是否有任何疑问? 请在 Exchange 论坛中寻求帮助。 请访问以下论坛:Exchange Server、Exchange Online 或 Exchange Online Protection。
创建邮件流规则
创建邮件流规则主要是指想要填充的方案。 例如,请参阅下列主题:
数据丢失防护 (DLP) 策略是邮件流规则的集合。 若要创建 DLP 策略,请参阅Exchange Server DLP 过程。
使用 EAC 创建邮件流规则
借助 EAC,可以通过使用模板(条件和操作的已筛选列表)、复制现有规则,或从头开始创建规则来创建邮件流规则。
在 EAC 中,转到 “邮件流>规则”,然后选择以下选项之一:
若要从模板创建规则,请单击“ 添加 ” () 并选择模板, (“ 创建新规则 ”) 以外的值。
若要复制规则,请选择规则,然后选择 “复制 () 。 注意,复制规则选项仅适用于 EAC。
若要从头开始创建新规则, 请添加 () ,然后选择“ 创建新规则”。
在打开的" 新规则"窗口中,配置以下设置:
名称:输入规则的唯一描述性名称。
在以下情况下应用此规则:选择规则的条件。 如果希望将该规则应用于所有邮件,请选择" [应用于所有邮件]"。 有关可用条件的说明,请参阅邮件流规则条件和例外 (Exchange Server中的谓词) 。
执行以下操作:为规则选择操作。 该操作应用于匹配这些条件的邮件。 有关可用条件的说明,请参阅 Exchange Server 中的邮件流规则操作。
可选属性:
使用严重级别审核此规则:对于 DLP 策略,此设置指定规则匹配数据在 DLP 策略检测报告中的显示方式。 有关详细信息, 请参阅 DLP 策略检测报告。 如果清除该复选框或选中“ 未指定”值,规则匹配项将不会显示在规则报告中。
选择此规则的模式:可以使用两种测试模式之一来测试规则,而不会影响邮件流。 当满足条件时,两种测试模式都可以将某个条目添加到邮件跟踪日志。 选择以下值之一:
强制:这会打开规则,并立即开始处理消息。 将执行有关此规则的所有操作。 此值为默认值。
使用策略提示进行测试:这将打开规则,并且将发送任何策略提示操作 (发送 策略提示) 通知发件人,但不会执行与邮件传递相关的操作。 需开启 DLP 才能使用此模式。 要了解详细信息,请参阅策略提示。
在没有策略提示的情况下进行测试:对于 DLP 策略,将仅强制实施 生成事件报告并将其发送到 操作。 不执行与消息传递相关的操作。
可以单击" 保存"来创建规则,也可以单击" 更多选项"配置以下其他设置:
要添加更多条件,请单击“添加条件”。 如果有多个条件,可以通过单击“ 删除 X”来删除条件。请注意,单击“ 更多选项”后,有更多条件可用。
要添加更多操作,请单击“添加操作”。 如果有多个操作,可以通过单击“ 删除 X”删除操作。请注意,单击“ 更多选项”后,有更多操作可用。
要为此规则添加例外,请单击" 添加例外",然后使用" 下面情况除外"下拉列表选择例外。 可通过单击" 删除 X"删除例外。
在以下日期激活此规则:如果希望规则在特定日期后生效,请指定开始日期。 请注意,规则仍在该日期之前启用,但不会得到处理。
在以下日期停用此规则:如果希望规则在特定日期停止处理邮件,请指定结束日期。 请注意,此规则在该日期之后仍启用,但不会得到处理。
停止处理更多规则:选中此复选框可避免在此规则处理邮件后应用其他规则。
如果规则处理未完成,则延迟消息:选中此复选框可重新提交邮件进行处理。 默认情况下,此规则将被忽略,系统将继续正常传递邮件。
匹配邮件中的发件人地址:对于检查发件人地址的条件和例外,可以指定规则查找发件人地址的位置:在邮件头 (默认) 、邮件信封或邮件头和信封。 有关详细信息,请参阅 发件人.
注释:为规则指定描述性注释。
完成后,单击“保存”。
使用 Exchange 命令行管理程序 创建邮件流规则
有两种可在 Exchange 命令行管理程序 中配置新邮件流规则的设置在 EAC 中不适用(直到完成创建的规则):
创建新规则作为禁用 (已启用
$false
)设置规则的优先级 (优先级<编号>) 。
要在 Exchange 命令行管理程序 中创建邮件流规则,请使用以下语法:
New-TransportRule -Name <RuleName> [<Conditions>] [<Exceptions>] <Actions> [<Properties>]
此示例将创建具有下列设置的新规则:
名称:将来自 Internet 的消息标记为 Sales DG。
条件
来自外部发件人的邮件。
和
发送到名为销售部门的通讯组的邮件。
操作:在邮件的 “主题” 字段前面添加值
"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 中,转到 “邮件流>规则”,并验证你创建的规则是否在列表中。
在 Exchange 命令行管理程序中,使用以下任一过程:
- 运行下列命令以查看规则列表中的新规则:
Get-TransportRule
- 将 RuleName> 替换为<规则的名称,并运行以下命令以查看规则的详细信息:
Get-TransportRule -Identity "<RuleName>" | Format-List
查看邮件流规则
在邮箱服务器上创建的邮件流规则存储在 Active Directory 中,因此,在邮箱服务器上查看这些规则时,可以查看组织中的所有规则。 使用 Exchange 命令行管理程序 查看边缘传输服务器上的邮件流规则时,可以看到存储在本地服务器上的规则。
使用 EAC 查看邮件流规则
在 EAC 中,转到 “邮件流>规则”。
选择规则时,有关规则的信息将显示在细节窗格中。 若要查看有关规则的详细信息,请单击 “编辑” () 。
在 EAC 中, Version 属性仅在细节窗格中可见。 此属性指示规则与早期版本的 Exchange (14 的兼容性。n.n.n 为 Exchange 2010,15.0。n.n 是 Exchange 2013) 。
使用 Exchange 命令行管理程序查看邮件流规则
要返回所有邮件流规则的摘要列表,请运行以下命令:
Get-TransportRule
要返回有关特定规则的详细信息,请使用以下语法:
Get-TransportRule -Identity "<RuleName>" | Format-List [<Specific properties to view>]
下面的示例将返回名为"Sender is a member of marketing"的规则的所有属性值:
Get-TransportRule -Identity "Sender is a member of marketing" | Format-List
下面的示例仅返回同一规则的指定属性。
Get-TransportRule -Identity "Sender is a member of marketing" | Format-List Name,State,Mode,Priority,Comments,Conditions,Exceptions,RuleVersion
有关语法和参数的详细信息,请参阅 Get-TransportRule。
使用 Exchange 命令行管理程序查看邮件流规则的可用条件和例外(谓词)
邮件流规则中的条件和例外统称为 谓词,因为针对每个条件,都存在使用完全相同的设置和语法的相应例外。 唯一的区别是:条件指定要包含的邮件,而例外指定要排除的邮件。 只能查看 Exchange 命令行管理程序中条件和例外的列表。
要查看邮件流规则中提供的条件和例外,请运行以下命令:
Get-TransportRulePredicate
有关语法和参数的详细信息,请参阅 Get-TransportRulePredicate。
注意:
不能将例外与条件区分开来。
边缘传输服务器上的可用谓词是邮箱服务器上可用谓词的一小部分。 有关详细信息,请参阅 Exchange Server 中的邮件流规则条件和异常(谓词)。
一些谓词名称不同于 New-TransportRule 和 Set-TransportRule cmdlet 上的相应条件和例外参数名称。 此外,某些谓词需要多个参数。
使用 Exchange 命令行管理程序查看邮件流规则的可用操作
只能查看 Exchange 命令行管理程序中的操作列表。
要查看邮件流规则中的可用操作,请运行以下命令:
Get-TransportRuleAction
有关语法和参数的详细信息,请参阅 Get-TransportRuleAction。
注意:
邮箱服务器上可用的一小部分操作也可在边缘传输服务器上使用,但某些操作只在边缘传输服务器上可用。 有关详细信息,请参阅 Exchange Server 中的邮件流规则操作。
一些操作名称不同于 New-TransportRule 和 Set-TransportRule cmdlet 上的相应操作参数名称。 此外,某些操作需要多个参数。
修改邮件流规则
使用 EAC 修改邮件流规则
在 EAC 中修改邮件流规则时,其他设置均不可用。 这些设置与创建规则时可用的设置相同:
在 EAC 中,转到 “邮件流>规则”。
选择该规则,然后单击 “编辑” () 。 注意,该规则的属性会完全展开(没有" 更多选项"链接可用)。 有关规则属性的详细信息,请参阅本主题中的使用 EAC 创建邮件流规则部分。
使用 Exchange 命令行管理程序修改邮件流规则
在 Exchange 命令行管理程序中修改邮件流规则时,不能禁用或启用该规则, (Set-TransportRule cmdlet) 上没有 Enabled 参数。 相反,可用使用本主题后面所介绍的 Disable-TransportRule 和 Enable-TransportRule cmdlet。
要在 Exchange 命令行管理程序中修改邮件流规则,请使用以下语法:
Set-MailFlowRule -Identity "<RuleName>" [<Conditions>] [<Exceptions>] [<Actions>] [<Properties>]
此示例对名为"Sender is a member of marketing"的规则添加了例外,以使该规则不应用于名为 Kelly Rollin 的用户发送的邮件:
Set-TransportRule -Identity "Sender is a member of marketing" -ExceptIfFrom "Kelly Rollin"
有关语法和参数的详细信息,请参阅 Set-TransportRule。
如何知道操作成功?
要检查是否成功修改了邮件流规则,请使用以下过程之一:
在 EAC 中,转到 “邮件流>规则”,选择该规则,并在详细信息窗格中查看信息。 若要查看更多设置,请单击 “编辑” () 。
在 Exchange 命令行管理程序中,将 RuleName> 替换为<规则的名称,并运行以下命令:
Get-TransportRule -Identity "<RuleName>" | Format-List
设置邮件流规则的优先级
默认情况下,会根据创建邮件流规则时的顺序确定它们优先级(较新规则的优先级低于较早规则的优先级)。 较低的优先级编号指示规则具有较高优先级,并按照优先级顺序处理这些规则(先处理具有较高优先级的规则,然后再处理具有较低优先级的规则)。 不存在两个规则具有相同优先级的情况。
注意:
通过在规则中包含 停止处理更多规则 (StopRuleProcessing
$true
) 操作,可以阻止后续低优先级规则对邮件进行操作。在 EAC 中,只能在创建规则后更改相应规则的优先级。 在 Exchange 命令行管理程序 中,可在创建规则时替代默认优先级(这会影响现有规则的优先级)。
使用 EAC 设置邮件流规则的优先级
在 EAC 中,规则按它们所显示的顺序进行处理(第一个规则优先级值为 0)。 若要更改规则的优先级,请在列表中上下移动规则, (还可以通过在 EAC) 中编辑规则来直接修改 优先级 编号。
在 EAC 中,转到 “邮件流>规则”。
选择一个规则,然后单击“ 上移 () 或 下移 () 在列表中向上或向下移动规则。
使用 Exchange 命令行管理程序设置邮件流规则的优先级
可以设置的规则最高优先级值是 0。 可以设置的最小优先级值取决于规则的数量。 例如,如果有五个规则,则可以使用的优先级值为 0 到 4。 更改现有规则的优先级可对其他规则产生级联效应。 例如,假设有五个规则(优先级为 0 到 4),如果将某个规则的优先级更改为 2,则优先级为 2 的现有规则将更改为优先级 3,优先级为 3 的规则将更改为优先级 4。
要设置 Exchange 命令行管理程序中规则的优先级,请使用以下语法:
Set-TransportRule -Identity "<RuleName>" -Priority <Number>
本示例将名为“发件人是市场营销成员”的规则的优先级设置为 2。 优先级小于或等于 2 的所有现有规则的优先级都递减 1(即优先级数字都递增 1)。
Set-TransportRule -Identity "Sender is a member of marketing" -Priority 2
注意:要在创建规则时设置新规则的优先级,请使用 New-TransportRule cmdlet 上的 Priority 参数。
如何知道操作成功?
要检查是否成功修改了邮件流规则的优先级,请使用以下过程之一:
在 EAC 中,转到 “邮件流>规则”,并验证列表中的规则 的“优先级 ”值。
在 Exchange 命令行管理程序中,使用以下任一过程:
- 运行下列命令以查看列表规则及其 Priority 值:
Get-TransportRule
- 将 RuleName> 替换为<规则的名称,并运行以下命令:
Get-TransportRule -Identity "<RuleName>" | Format-List Name,Priority
启用或禁用邮件流规则
禁用规则会阻止规则对邮件执行操作,但允许保留该规则的设置。
默认情况下,在 EAC 或 Exchange 命令行管理程序中创建邮件流规则时启用邮件流规则,但可以使用 Exchange 命令行管理程序创建禁用的规则 (将 Enabled 参数与值 $false
) 。
使用 EAC 启用或禁用邮件流规则
在 EAC 中,转到 “邮件流>规则”。
从列表中选择该规则,然后配置下列设置之一:
禁用规则:清除“ 打开 ”列中的复选框。
启用规则:选中“ 打开 ”列中的复选框。
使用 Exchange 命令行管理程序启用或禁用邮件流规则
要在 Exchange 命令行管理程序中启用或禁用邮件流规则,请使用以下语法:
<Enable-TransportRule | Disable-TransportRule> -Identity "<RuleName>"
此示例禁用名为"Sender is a member of marketing"的邮件流规则。
Disable-TransportRule "Sender is a member of marketing"
此示例启用名为"Sender is a member of marketing"的邮件流规则。
Enable-TransportRule "Sender is a member of marketing"
有关语法和参数的详细信息,请参阅 Enable-TransportRule 和 Disable-TransportRule。
如何知道操作成功?
要检查是否成功启用或禁用了邮件流规则,请使用以下过程之一:
在 EAC 中,转到 “邮件流>规则”,并在规则列表中验证 “开 ”列中复选框的状态。
在 Exchange 命令行管理程序中,使用以下任一过程:
- 运行下列命令以查看列表规则及其 State 值:
Get-TransportRule
- 将 RuleName> 替换为<规则的名称,并运行以下命令:
Get-TransportRule -Identity "<RuleName>" | Format-List Name,State
删除邮件流规则
使用 EAC 删除邮件流规则
在 EAC 中,转到 “邮件流>规则”。
选择要从列表中删除的规则,然后单击“ 删除” () 。
使用 Exchange 命令行管理程序删除邮件流规则
要删除 Exchange 命令行管理程序中的邮件流规则,请使用以下语法:
Remove-TransportRule -Identity "<RuleName>"
此示例删除名为"Sender is a member of marketing"的邮件流规则:
Remove-TransportRule -Identity "Sender is a member of marketing"
有关语法和参数的详细信息,请参阅 Remove-TransportRule。
如何知道操作成功?
要检查是否已成功删除邮件流规则,请使用以下过程之一:
在 EAC 中,转到 “邮件流>规则”,并验证删除的规则是否不再在列表中。
在 Exchange 命令行管理程序 中,运行以下命令以确认删除的规则是否已不再列出:
Get-TransportRule
导入或导出邮件流规则集合
可以导入以前作为备份导出的邮件流规则集合,也可以导入从上一版本的 Exchange 中导出的规则。
注意:
无法导入或导出 EAC 中的邮件流规则集合。 只能使用 Exchange 命令行管理程序。
如果邮件流规则集合是从 Exchange 2013 或更高版本导出的,则无法将邮件流规则集合导入 Exchange 2010。
使用 Exchange 命令行管理程序导出邮件流规则集合
运行以下命令:
$File = Export-TransportRuleCollection
使用以下语法:
[System.IO.File]::WriteAllBytes('<OutputFile>', $File.FileData)
例如,要将导出的邮件流规则集合保存到 C:\My Documents\Exported Rules.xml 文件,请运行以下命令:
[System.IO.File]::WriteAllBytes('C:\My Documents\Exported Rules.xml', $File.FileData)
有关语法和参数的详细信息,请参阅 Export-TransportRuleCollection。
使用 Exchange 命令行管理程序导入邮件流规则集合
使用以下语法:
$Data = [System.IO.File]::ReadAllBytes('<OutputFile>')
例如,要从 C:\My Documents\Exported Rules.xml 导入邮件流规则集合,请运行以下命令:
$Data = [System.IO.File]::ReadAllBytes('C:\My Documents\Exported Rules.xml')
运行以下命令:
Import-TransportRuleCollection -FileData $Data
有关语法和参数的详细信息,请参阅 Import-TransportRuleCollection。
需要更多帮助吗?
Exchange Server的资源: