Crear a un agente de transporte DeliveryAgent para Exchange 2013Create a DeliveryAgent transport agent for Exchange 2013

Encuentre información acerca de cómo crear un agente de transporte DeliveryAgent personalizado para usar con Exchange 2013.Find out how to create a custom DeliveryAgent transport agent to use with Exchange 2013.

Se aplica a: Exchange Server 2013Applies to: Exchange Server 2013

La DeliveryAgentFactory<Manager> y las clases de DeliveryAgent son las clases base para los agentes de transporte que están diseñadas para ejecutarse en el servicio de transporte en un servidor de buzones de Exchange Server 2013.The DeliveryAgentFactory<Manager> and DeliveryAgent classes are the base classes for transport agents that are designed to run on the Transport service on an Exchange Server 2013 Mailbox server. Es posible que implemente los controladores en el agente de transporte DeliveryAgent para los eventos proporcionados por la clase DeliveryAgent que se enumeran en la siguiente tabla.You might implement handlers in your DeliveryAgent transport agent for the events provided by the DeliveryAgent class that are listed in the following table.

La tabla 1. Eventos de clase DeliveryAgentTable 1. DeliveryAgent class events

EventoEvent DescripciónDescription
OnCloseConnectionOnCloseConnection
Se produce después de que se ha entregado el último elemento de correo y se cierra la conexión.Occurs after the last mail item has been delivered and the connection is closed.
OnDeliverMailItemOnDeliverMailItem
Se produce cuando un elemento de correo está listo para entregar.Occurs when a mail item is ready to be delivered.
OnOpenConnectionOnOpenConnection
Se produce cuando se abre el agente de entrega para la entrega de correo.Occurs when the delivery agent is opened for mail delivery.

Creación de un agente de transporte DeliveryAgent personalizadoCreating a custom DeliveryAgent transport agent

El siguiente procedimiento describe cómo crear a un agente de transporte DeliveryAgent personalizado.The following procedure describes how to create a custom DeliveryAgent transport agent.

Para crear al agente de transporteTo create the transport agent

  1. Agregue referencias a los espacios de nombres.Add references to the namespaces.

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

    Puede encontrar estos espacios de nombres en el servidor de Exchange.You can find these namespaces on your Exchange server. Mediante la adición de una referencia a estos espacios de nombres, tendrá acceso a los miembros de DeliveryAgent .By adding a reference to these namespaces, you will have access to the DeliveryAgent members.

  2. Implementar la clase derivada de la DeliveryAgentFactory<Manager> clase.Implement the derived class for the DeliveryAgentFactory<Manager> class.

       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 se cree una instancia de la clase derivada y reemplace el método CreateAgent para crear una instancia de su nuevo agente personalizado.This code will instantiate the derived class and override the CreateAgent method to create an instance of your new custom agent. Métodos adicionales, como Close, también pueden reemplazarse en esta clase para ejecutar código personalizado.Additional methods, such as Close, can also be overridden in this class to execute custom code. Se crea una clase DeliveryAgentManager para invalidar la propiedad SupportedDeliveryProtocol y establecer el protocolo que se va a usar el agente.A DeliveryAgentManager class is created to override the SupportedDeliveryProtocol property and set the protocol your agent will use.

  3. Definir al agente.Define your agent.

       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, se puede agregar funcionalidad personalizada.After you define your agent class, you can add you custom functionality. En este ejemplo, los tres eventos, OnCloseConnection, OnDeliverMailItemy OnOpenConnection, se redirigen a sus controladores de eventos personalizados.In this example, the three events, OnCloseConnection, OnDeliverMailItem, and OnOpenConnection, are redirected to your custom event handlers.

Vea tambiénSee also