Поделиться через


Создание транспортного агента DeliveryAgent для Exchange 2013

Узнайте, как создать пользовательский транспортный агент DeliveryAgent для использования с Exchange 2013.

Область применения: Exchange Server 2013 г.

Классы DeliveryAgentFactory<Manager> и DeliveryAgent являются базовыми классами для агентов транспорта, которые предназначены для запуска в транспортной службе на сервере почтовых ящиков Exchange Server 2013. Обработчики можно реализовать в транспортном агенте DeliveryAgent для событий, предоставляемых классом DeliveryAgent , перечисленных в следующей таблице.

Таблица 1. События класса DeliveryAgent

Событие Описание
OnCloseConnection
Происходит после доставки последнего почтового элемента и закрытия подключения.
OnDeliverMailItem
Происходит, когда почтовый элемент готов к доставке.
OnOpenConnection
Происходит при открытии агента доставки для доставки почты.

Создание пользовательского транспортного агента DeliveryAgent

В следующей процедуре описывается создание пользовательского транспортного агента DeliveryAgent.

Создание агента транспорта

  1. Добавьте ссылки на пространства имен.

         using Microsoft.Exchange.Data.Transport;
         using Microsoft.Exchange.Data.Transport.Delivery;
    
    

    Эти пространства имен можно найти на сервере Exchange Server. Добавив ссылку на эти пространства имен, вы получите доступ к членам DeliveryAgent .

  2. Реализуйте производный класс для класса 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 и задания протокола, который будет использовать агент.

  3. Определите агент.

       public class MyDeliveryAgent : DeliveryAgent
       {
           public MyDeliveryAgent(SmtpServer server)
           {
               this.OnCloseConnection += CloseConnection;
               this.OnDeliverMailItem += DeliverMailItem;
               this.OnOpenConnection += OpenConnection;
           }
       }
    
    

    После определения класса агента можно добавить пользовательские функции. В этом примере три события, OnCloseConnection, OnDeliverMailItem и OnOpenConnection, перенаправляются в пользовательские обработчики событий.

См. также