了解传递代理

 

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

上一次修改主题: 2009-12-17

传递代理负责传递发往外部系统的邮件,这些外部系统不使用 SMTP 协议。每个传递代理都配合使用一个传递代理连接器。当邮件路由到传递代理连接器时,相关的传递代理将执行内容转换和邮件传递。相对于外部连接器而言,传递代理是在 Exchange 组织中处理非 SMTP 邮件方面的一项重大改进。

若要了解与管理传输服务器相关的管理任务,请参阅管理传输服务器

目录

传递代理

向组织中添加传递代理

传递代理使用的事件

传递代理

传递代理是一个自定义代理,可以:

  • 为邮件传递建立与外部系统的连接。

  • 在集线器传输服务器上的远程传递队列中检索邮件。

  • 将邮件传递到外部系统。

  • 提供有关每次邮件成功传递的确认。

虽然外部连接器体系结构仍保留在 Microsoft Exchange Server 2010 中,但我们建议尽可能将传递代理用于将邮件路由到非 SMTP 系统。传递代理具有下列优点:

  • 允许使用熟悉的队列管理工具对路由到外部系统的邮件进行队列管理。

  • 因为邮件不再需要写入到文件系统和从文件系统中进行读取,所以邮件传递性能得到了提高。

  • 为代理开发人员提供了对包含丰富事件的邮件属性的访问权限。

  • 传递代理的开发时间比实施外部连接器所需的时间短,因为传递代理可以使用 Exchange 的邮件表示和管理功能。

  • 现在可以确定的是,邮件将传递到外部系统,而不仅仅是写入到投递目录。

  • 使用传递代理连接器将能够进行服务级别协议 (SLA) 分析,因为现在可以跟踪到外部系统的邮件传递延迟。

返回顶部

向组织中添加传递代理

若要在组织中使用传递代理,必须完成以下操作:

  • 获取传递代理。通常,传递代理由第三方编写。Exchange 2010 在默认情况下仅附带一个传递代理连接器:文本消息传递代理连接器。

  • 在即将为传递代理连接器充当源服务器的集线器传输服务器上,安装传递代理。

  • 针对特定协议创建传递代理连接器。

完成所有这些步骤后,发往外部系统的邮件将通过传递代理连接器进行路由,并由传递代理进行处理。

传递代理连接器

请不要混淆传递代理连接器与实际传递代理。传递代理连接器是配置用于制定路由决策的。传递代理连接器负责将由传递代理处理的队列邮件;这与发送连接器或路由组连接器用于 SMTP 传递的情况非常类似。

传递代理连接器可确保已经在用于将邮件传递到外部系统的集线器传输服务器上将发往外部系统的邮件插入到合适的队列中。邮件排队后,连接管理器将调用传递代理来处理发往外部系统的邮件的实际传递。

返回顶部

传递代理使用的事件

传递代理作用于连接管理器组件所引发的以下事件:

  • OnOpenConnection   在队列中有即将传递到外部系统的邮件时,将引发该事件。该事件将通知传递代理发起与外部系统的连接。

  • OnDeliverMailItem   该事件将通知传递代理检索队列中的下一个项目。

  • OnCloseConnection   在队列中没有需要传递到外部系统的邮件时,将引发该事件。该事件将通知传递代理关闭与外部系统的连接。

在典型的传递情况下将发生以下连接管理器和传递代理之间的交互:

  1. 连接管理器检测到列队中有等待传递到外部系统的邮件。

  2. 连接管理器使用 OnOpenConnection 事件调用传递代理。

  3. 传递代理建立与外部系统的连接。建立连接后,传递代理将使用 RegisterConnection 方法通知连接管理器。

  4. 连接管理器引发 OnDeliverMailItem 事件。

  5. 传递代理从队列中检索邮件,并将其传递到外部系统。传递完成后,它将向连接管理器提供确认。

  6. 如果队列中还有其他邮件,则会重复步骤 4 和 5,直到所有邮件都传递完毕。

  7. 连接管理器引发 OnCloseConnection 事件。

  8. 传递代理关闭与外部系统的连接,并使用 UnRegisterConnection 方法通知连接管理器。

重试情况

遇到以下情况时,邮件或整个传递代理连接器队列会进入重试状态:

  • 连接管理器引发 OnOpenConnection 事件后,如果传递代理未使用 RegisterConnection 方法作出响应,则该传递代理连接器的整个队列都将转入重试状态。

  • 如果传递代理没有提供特定邮件的确认,则该邮件将转入重试状态。

返回顶部

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