Creación de un agente de transporte de DeliveryAgent para Exchange 2013

Obtenga información sobre cómo crear un agente de transporte deliveryAgent personalizado para usarlo con Exchange 2013.

Se aplica a: Exchange Server 2013

Las clases DeliveryAgentFactory<Manager> y DeliveryAgent son las clases base de los agentes de transporte diseñadas para ejecutarse en el servicio de transporte en un servidor de buzón de Exchange Server 2013. Puede implementar controladores en el agente de transporte de DeliveryAgent para los eventos proporcionados por la clase DeliveryAgent que se enumeran en la tabla siguiente.

Tabla 1. Eventos de clase DeliveryAgent

Evento Descripción
OnCloseConnection
Se produce después de que se haya entregado el último elemento de correo y se haya cerrado la conexión.
OnDeliverMailItem
Se produce cuando un elemento de correo está listo para entregarse.
OnOpenConnection
Se produce cuando se abre el agente de entrega para la entrega por correo.

Creación de un agente de transporte deliveryAgent personalizado

En el procedimiento siguiente se describe cómo crear un agente de transporte DeliveryAgent personalizado.

Para crear el agente de transporte

  1. Agregue referencias a los espacios de nombres.

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

    Puede encontrar estos espacios de nombres en el servidor exchange. Al agregar una referencia a estos espacios de nombres, tendrá acceso a los miembros de DeliveryAgent .

  2. Implemente la clase derivada para la clase 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"; }
               }
           }
       }
    
    

    Este código creará una instancia de la clase derivada e invalidará el método CreateAgent para crear una instancia del nuevo agente personalizado. Los métodos adicionales, como Close, también se pueden invalidar en esta clase para ejecutar código personalizado. Se crea una clase DeliveryAgentManager para invalidar la propiedad SupportedDeliveryProtocol y establecer el protocolo que usará el agente.

  3. Defina el agente.

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

    Después de definir la clase de agente, puede agregarle funcionalidad personalizada. En este ejemplo, los tres eventos , OnCloseConnection, OnDeliverMailItem y OnOpenConnection, se redirigen a los controladores de eventos personalizados.

Vea también