Создание транспортного агента DeliveryAgent для Exchange 2013
Узнайте, как создать пользовательский транспортный агент 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 Server. Добавив ссылку на эти пространства имен, вы получите доступ к членам 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, перенаправляются в пользовательские обработчики событий.