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

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

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

Aplicaciones de ejemplo y fragmentos de código relacionados:Related code snippets and sample apps:

Las clases SmtpReceiveAgentFactory y SmtpReceiveAgent permiten ampliar el comportamiento del servicio de transporte Front-End en un servidor de acceso de cliente o el servicio de transporte en un servidor de buzón de correo.The SmtpReceiveAgentFactory and SmtpReceiveAgent classes enable you to extend the behavior of the Front End Transport service on a Client Access Server or the Transport service on a Mailbox server. Puede utilizar estas clases para implementar a los agentes de transporte que están diseñados para responder a los mensajes según entran en la organización.You can use these classes to implement transport agents that are designed to respond to messages as they come into your organization.

Las clases SmtpReceiveAgentFactory y SmtpReceiveAgent incluyen los eventos que aparecen en la siguiente tabla.The SmtpReceiveAgentFactory and SmtpReceiveAgent classes include the events listed in the following table.

La tabla 1. Eventos de clase SmtpReceiveAgentTable 1. SmtpReceiveAgent class events

EventoEvent DescripciónDescription
OnAuthCommandOnAuthCommand
Se usa cuando el agente requiere información que sólo se proporciona en el comando AUTH de SMTP, como un agente que acepta o rechaza intenta entregar un mensaje en función del tipo de método de autenticación usado.Use when your agent requires information that is provided only in the SMTP AUTH command, such as an agent that accepts or rejects attempts to deliver a message based on the type of authentication method used.
OnConnectOnConnect
Se utiliza cuando el agente requiere información que se proporciona únicamente cuando se abre una conexión a través de SMTP para el servicio de transporte Front-End, como un agente que lleva a cabo una acción basada en la dirección o el dominio del servidor SMTP remoto.Use when your agent requires information that is provided only when a connection is opened via SMTP to the Front End Transport service, such as an agent that performs an action based on the address or domain of the remote SMTP server.
OnDataCommandOnDataCommand
Utilice este evento cuando el agente requiere información que se proporciona en el comando SMTP datos .Use this event when your agent requires information that is provided in the SMTP DATA command.
OnDisconnectOnDisconnect
Se utiliza cuando el agente requiere información que está disponible en el momento de desconexión, como la fecha y hora actuales, con el fin de realizar los cálculos de tiempo.Use when your agent requires information that is available at the time of disconnection, such as the current date and time, in order to perform time calculations.
OnEhloCommandOnEhloCommand
Se usa cuando el agente requiere información que se proporciona en el comando SMTP EHLO ; Por ejemplo, si el agente acepta o rechaza mensajes en función de la identidad proporcionada en el comando EHLO .Use when your agent requires information that is provided in the SMTP EHLO command; for example, if your agent accepts or rejects messages based on the identity provided in the EHLO command.
OnEndOfAuthenticationOnEndOfAuthentication
Se usa cuando el agente requiere información que está disponible después de que el servidor remoto finaliza el proceso de autenticación; Por ejemplo, un agente que realiza una acción en un mensaje en función de la información de autenticación proporcionada por el servidor SMTP remoto o el cliente.Use when your agent requires information that is available after the remote server completes the authentication process; for example, for an agent that performs an action on a message based on the authentication information provided by the remote SMTP server or client.
OnEndOfDataOnEndOfData
Se utiliza cuando el agente debe llevar a cabo una acción basándose en los datos que está disponibles en el mensaje.Use when your agent must perform an action based on data that is available in the message. Este evento no se desencadenará en el servicio de transporte Front-End.This event will not fire on the Front End Transport service. Si el agente de transporte tiene que usar este evento, se debe instalar en un servidor de buzón de correo.If your transport agent has to use this event, you have to install it on a Mailbox server.
OnEndOfHeadersOnEndOfHeaders
Se utiliza cuando el agente debe llevar a cabo una acción según la información que está disponible en los encabezados del mensaje enviado.Use when your agent must perform an action based on information that is available in the headers of the submitted message.

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

El siguiente procedimiento describe cómo crear a un agente de transporte SmtpReceiveAgent personalizado.The following procedure describes how to create a custom SmtpReceiveAgent 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.Smtp;
       using Microsoft.Exchange.Data.Transport.Email;
       using Microsoft.Exchange.Data.TextConverters;
    
    

    Puede encontrar estos espacios de nombres en el servidor de Exchange 2013.You can find these namespaces on your Exchange 2013 server. Cuando se agrega una referencia a estos espacios de nombres, tendrá acceso a los miembros de SmtpReceiveAgent así como otras clases que se usan en el Exchange 2013: crear un agente de transporte de conversión de cuerpo ejemplo.When you add a reference to these namespaces, you will have access to the SmtpReceiveAgent members as well as other classes used in the Exchange 2013: Build a body conversion transport agent sample.

  2. Implementar la clase derivada de la clase SmtpReceiveAgentFactory .Implement the derived class for the SmtpReceiveAgentFactory class.

       public class BodyConversionFactory : SmtpReceiveAgentFactory
       {
           /// <summary>
           /// Create a new BodyConversion
           /// </summary>
           /// <param name="server">Exchange server</param>
           /// <returns>A new BodyConversion</returns>
           public override SmtpReceiveAgent CreateAgent(SmtpServer server)
           {
               return new BodyConversion();
           }
       }
    
    

    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.

  3. Definir al agente.Define your agent.

      public class BodyConversion : SmtpReceiveAgent
       {
           // Your custom code goes here
           /// <summary>
           /// The constructor registers an end of data event handler.
           /// </summary>
           public BodyConversion()
           {
               Debug.WriteLine("[BodyConversion] Agent constructor");
               this.OnEndOfData += new EndOfDataEventHandler(this.OnEndOfDataHandler);
           }
       }
    
    

    Después de definir la clase del agente, puede agregar la funcionalidad personalizada.After you define your agent class, you can add your custom functionality. En este ejemplo, el evento OnEndOfData se redirige a su controlador de eventos personalizado.In this example, the OnEndOfData event is redirected to your custom event handler.

Vea tambiénSee also