了解传输代理

 

适用于: Exchange Server 2010 SP2, Exchange Server 2010 SP3

上一次修改主题: 2015-03-09

通过传输代理,您可以在运行 Microsoft Exchange Server 2010 的计算机上安装由 Microsoft、第三方供应商或您的组织创建的自定义软件。然后,此软件可用于处理通过集线器传输服务器或边缘传输服务器上的传输管道的电子邮件。自定义传输代理可为 Exchange 2010 提供附加功能,例如反垃圾邮件或反病毒程序,或者组织可能需要的任何传输功能。

传输代理通常自动随用于与 Exchange 2010 协同工作的应用程序一起安装。但是,有时,组织可能希望开发自己的传输代理来管理通过其 Exchange 2010 组织的邮件。

小心警告:
传输代理对其遇到的所有电子邮件都具有完全访问权限。Exchange 对传输代理的行为没有任何限制。不稳定的或带有安全缺陷的传输代理可能会影响 Exchange 的稳定性和安全性。因此,您只能安装自己完全信任并且已在测试环境中经过全面测试的传输代理。

要查找与管理传输代理相关的管理任务吗?请参阅管理传输代理

目录

传输代理和 SMTP 事件

传输代理的优先级顺序

内置传输代理

传输代理故障排除

传输代理和 SMTP 事件

为 Exchange 2010 编写的传输代理使用 SMTP 事件。邮件在传输管道中移动时会触发这些事件。SMTP 事件使传输代理可以在 SMTP 会话期间以及通过组织路由邮件期间,在特定的时间点访问邮件。下表列出了可提供对传输管道中邮件的访问权限的 SMTP 事件。

SMTP 接收事件

序列 SMTP 事件 说明

1

OnConnect

从远程 SMTP 主机建立初始连接后将触发此事件。

2

OnEhloCommand

远程 SMTP 主机发出 EHLO SMTP 谓词时将触发此事件。

3

OnHeloCommand

远程 SMTP 主机发出 HELO SMTP 谓词时将触发此事件。

4

OnAuthCommand

远程 SMTP 主机发出 AUTH SMTP 谓词时将触发此事件。

5

OnEndOfAuthentication

远程 SMTP 主机完成身份验证时将触发此事件。

6

OnMailCommand

远程 SMTP 主机发出 MAIL FROM SMTP 谓词时将触发此事件。

7

OnRcptToCommand

远程 SMTP 主机发出 RCPT TO SMTP 谓词时将触发此事件。

8

OnDataCommand

远程 SMTP 主机发出 DATA SMTP 谓词时将触发此事件。

9

OnEndOfHeaders

远程 SMTP 主机完成提交电子邮件头时将触发此事件。

10

OnEndOfData

远程 SMTP 主机发出用于指示数据末尾的 <CRLF> 时,将会触发此事件。

**

OnHelpCommand

远程 SMTP 主机发出 HELP SMTP 谓词时将触发此事件。此事件在 OnConnect SMTP 事件之后和 OnDisconnect SMTP 事件之前随时都可以发生。

**

OnNoopCommand

远程 SMTP 主机发出 NOOP SMTP 谓词时将触发此事件。此事件在 OnConnect SMTP 事件之后和 OnDisconnect SMTP 事件之前随时都可以发生。

**

OnReject

接收 SMTP 主机向发送 SMTP 主机发出临时或永久传递状态通知 (DSN) 代码时将触发此事件。此事件在 OnConnect SMTP 事件之后和 OnDisconnect SMTP 事件之前随时都可以发生。

**

OnRsetCommand

发送 SMTP 主机发出 RSET SMTP 谓词时将触发此事件。此事件在 OnConnect SMTP 事件之后和 OnDisconnect SMTP 事件之前随时都可以发生。

11

OnDisconnect

接收或发送 SMTP 主机断开 SMTP 会话后,将会触发此事件。

分类程序事件

序列 分类程序事件 描述

1

OnSubmittedMessage

向接收 SMTP 主机上的“提交”队列提交邮件后将触发此事件。无论邮件是通过 SMTP 提交、MAPI 提交还是通过分拣目录或重播目录到达的,所有邮件都会遇到此事件。

2

OnResolvedMessage

在解析所有收件人之后到为每个收件人确定跃点之前的这段时间,将触发此事件。使用 OnResolvedMessage 路由事件,能够通过每个收件人的 SetRoutingOverride 方法使用后续事件覆盖默认的路由行为。

3

OnRoutedMessage

对邮件进行分类、扩展通讯组列表并且解析了收件人后,将会触发此事件。

4

OnCategorizedMessage

在分类程序完成邮件处理时,会触发此事件。

可以在上面各表中列出的任何 SMTP 事件上注册传输代理。但是,传输代理的预定操作通常会指定要在哪些 SMTP 事件上运行。

请以反垃圾邮件代理为例。对于这些代理而言,最重要的考虑因素并非邮件内容的合法性,而是在哪个时间点上识别和拒绝有效的垃圾邮件。拒绝已确认为垃圾邮件的邮件越早,组织耗用的成本越低。在 OnEndOfData SMTP 事件之前触发的所有 SMTP 事件不要求接收 SMTP 主机生成未送达回执 (NDR)。不生成 NDR 的原因是发生 OnEndOfData SMTP 事件之前未传递完整的邮件内容。因此,发送 SMTP 主机仍然需要负责邮件的最终传递。如果接收 SMTP 主机在 OnEndOfData SMTP 事件之前发生故障,则发送 SMTP 主机必须向邮件发件人生成 NDR。发生 OnEndOfData SMTP 事件后,接收 SMTP 主机已接受完整的邮件内容。这意味着 SMTP 主机现在需要负责成功传递邮件并向邮件发件人生成和发送 NDR。因此,关键的是反垃圾邮件代理需要在发生 OnEndOfData SMTP 事件之前,在 SMTP 事件上注册其自身,以减小接收 SMTP 主机存储邮件内容且必须向邮件发件人生成 NDR 的可能性。

但对于反病毒代理而言,最重要的考虑因素是确保扫描每封邮件。必须为 OnSubmittedMessage SMTP 事件配置必须查看每封邮件的代理。经过传输管道的每封邮件都将发生 OnSubmittedMessage SMTP 事件,因为在经过所有可能的提交入口点之后会发生这种情况,例如,从远程主机进行的 SMTP 提交、从运行邮箱服务角色的计算机进行的 MAPI 提交、自定义应用程序使用的分拣目录或第三方电子邮件应用程序使用的重播目录。

返回顶部

传输代理的优先级顺序

通过 Exchange 2010,您可以指定 Exchange 包含的以及自定义应用程序添加的传输代理的优先级。如果指定了传输代理的优先级,则可以控制哪些代理将首先应用于邮件。为传输代理分配的优先级可以是 1 或更高。优先级接近 1 的传输代理将最先应用于邮件。但是,为传输代理分配的优先级只是用于确定向邮件应用传输代理时遵循的顺序的一个因素。用于确定传输代理优先级的第二个因素是,包含已注册传输代理的 SMTP 事件应定位在 SMTP 事件序列的哪个位置。

如本主题中前文部分的表所示,SMTP 事件具有特定的序列,将这些事件应用到流经传输通道的邮件时将遵循此序列。由于传输代理将注册到特定的 SMTP 事件,因此优先级仅对注册到同一 SMTP 事件的代理有效。

例如,可以将传输代理配置如下:

  • 优先级为 1 的传输代理 AgentA,注册到 OnEndofHeaders SMTP 事件

  • 优先级为 4 的传输代理 AgentB,注册到 OnMailCommand SMTP 事件

使用 Get-TransportAgent cmdlet 查看已注册的代理的列表时,列出的传输代理 AgentA 的优先级高于传输代理 AgentB。但是,当邮件流经传输管道时,传输代理 AgentB 会先于传输代理 AgentA 应用到该邮件,因为 OnMailCommand SMTP 事件在 OnEndOfHeaders SMTP 事件之前遇到此邮件。

返回顶部

内置传输代理

Exchange 2010 拥有的多个默认传输代理使其可以提供传输规则和日记等功能。默认情况下,将在集线器传输服务器和边缘传输服务器上安装下列各表中列出的传输代理。下列各表还提供了指向其中包含每个代理的详细信息的主题的链接。

集线器传输服务器传输代理

代理名 优先级 SMTP 事件 相关主题

传输规则代理

1

OnRoutedMessage

了解传输规则

RMS 解密代理

此代理的优先级并不是用户可配置的。

OnSubmittedMessage

了解信息权限管理

日记报告解密代理

此代理的优先级并不是用户可配置的。

OncCategorizedMessage

了解日记功能

RMS 加密代理

此代理的优先级并不是用户可配置的。

OnRoutedMessage

了解信息权限管理

预许可代理

此代理的优先级并不是用户可配置的。

OnRoutedMessage

了解信息权限管理

日记代理

此代理的优先级并不是用户可配置的。

OnSubmittedMessage, OnRoutedMessage

了解日记功能

边缘传输服务器传输代理

代理名 优先级 SMTP 事件 相关主题

连接筛选代理

1

OnConnectEvent, OnMailCommand, OnRcptComand, OnEndOfHeaders

了解连接筛选

地址重写入站代理

2

OnRcptCommand, OnEndOfHeaders

了解地址重写

边缘规则代理

3

OnEndOfData

了解传输规则

内容筛选器代理

4

OnEndOfData

了解内容筛选

发件人 ID 代理

5

OnEndOfHeaders

了解发件人 ID

发件人筛选器代理

6

OnMailCommand, OnEndOfHeaders

了解发件人筛选

收件人筛选器代理

7

OnRcptCommand

了解收件人筛选

协议分析代理

8

OnEndOfHeaders, OnEndOfData, OnReject, OnRsetCommand, OnDisconnectEvent

了解协议日志记录

附件筛选代理

9

OnEndOfData

了解附件筛选

地址重写出站代理

10

OnRcptCommand, OnEndOfHeaders

了解地址重写

返回顶部

传输代理故障排除

通过传输代理,Exchange 可帮助用户控制电子邮件在组织内的传输过程。该功能可使您的 Exchange 基础结构符合组织的要求,而不是强行使组织符合电子邮件基础结构。自定义环境时,环境的复杂程度将会提高。为帮助您解决可能出现的问题,以及确保按期望方式将更改应用到邮件,Exchange 提供了下列功能:

  • Get-TransportPipeline cmdlet** Get-TransportPipeline** cmdlet 显示所有已启用的传输代理以及这些传输代理注册到的 SMTP 事件,这些 SMTP 事件在启动 Microsoft 传输服务之后到运行该 cmdlet 之前的这段时间遇到了传输管道中的邮件。有关详细信息,请参阅查看传输管道中的传输代理

    注释注意:
    只有在通过传输管道发送邮件后,才生成由 Get-TransportPipeline cmdlet 显示的信息。并且,只显示遇到邮件的传输代理。
  • 管道跟踪  使用管道跟踪,能够在邮件遇到每个传输代理前后,创建整个邮件的确切快照。使用管道跟踪,您还能够确定哪个传输代理生成了意外结果,或者验证传输代理是否按预期运行。

 © 2010 Microsoft Corporation。保留所有权利。