为 Exchange 2013 创建 DeliveryAgent 传输代理
了解如何创建自定义 DeliveryAgent 传输代理以用于 Exchange 2013。
适用于:Exchange Server 2013
DeliveryAgentFactory<Manager> 和 DeliveryAgent 类是传输代理的基类,这些代理设计为在 Exchange Server 2013 邮箱服务器上的传输服务上运行。 对于下表中列出的 DeliveryAgent 类提供的事件,可以在 DeliveryAgent 传输代理中实现处理程序。
表 1. DeliveryAgent 类事件
"事件" | 说明 |
---|---|
OnCloseConnection |
在传递最后一个邮件项目并关闭连接之后发生。 |
OnDeliverMailItem |
在邮件项准备好送达时发生。 |
OnOpenConnection |
在打开传递代理进行邮件传递时发生。 |
创建自定义 DeliveryAgent 传输代理
以下过程介绍如何创建自定义 DeliveryAgent 传输代理。
创建传输代理
添加对命名空间的引用。
using Microsoft.Exchange.Data.Transport; using Microsoft.Exchange.Data.Transport.Delivery;
可以在 Exchange 服务器上找到这些命名空间。 通过添加对这些命名空间的引用,你将有权访问 DeliveryAgent 成员。
实现 DeliveryAgentFactory<Manager> 类的派生类。
public class MyDeliveryAgentFactory : DeliveryAgentFactory<MyDeliveryAgentFactory.MyDeliveryAgentManager> { static MyDeliveryAgentFactory() { } public override DeliveryAgent CreateAgent(SmtpServer server) { return new MyDeliveryAgent(server); } public sealed class MyDeliveryAgentManager : DeliveryAgentManager { /// <summary> /// Gets the supported delivery protocol. /// </summary> public override string SupportedDeliveryProtocol { get { return "MyProtocol"; } } } }
此代码将实例化派生类并重写 CreateAgent 方法以创建新的自定义代理的实例。 此类中还可以重写其他方法(如 Close),以执行自定义代码。 将创建 DeliveryAgentManager 类来替代 SupportedDeliveryProtocol 属性并设置代理将使用的协议。
定义代理。
public class MyDeliveryAgent : DeliveryAgent { public MyDeliveryAgent(SmtpServer server) { this.OnCloseConnection += CloseConnection; this.OnDeliverMailItem += DeliverMailItem; this.OnOpenConnection += OpenConnection; } }
定义代理类后,可以添加自定义功能。 在此示例中, OnCloseConnection、 OnDeliverMailItem 和 OnOpenConnection 这三个事件重定向到自定义事件处理程序。
另请参阅
反馈
https://aka.ms/ContentUserFeedback。
即将发布:在整个 2024 年,我们将逐步淘汰作为内容反馈机制的“GitHub 问题”,并将其取代为新的反馈系统。 有关详细信息,请参阅:提交和查看相关反馈