Compartilhar via


Criar um agente de transporte RoutingAgent para o Exchange 2013

Descubra como criar um agente de transporte RoutingAgent personalizado para usar com o Exchange 2013.

Aplica-se a: Exchange Server 2013

Snippets de código relacionados e aplicativos de exemplo:

As classes RoutingAgentFactory e RoutingAgent são as classes base para agentes de transporte projetados para serem executados no serviço de transporte em um servidor de caixa de correio Exchange Server 2013. A classe RoutingAgent fornece os eventos listados na tabela a seguir para a qual você pode implementar manipuladores em seu agente de transporte RoutingAgent.

Tabela 1. Eventos de classe RoutingAgent

Event Descrição
OnCategorizedMessage
Ocorre depois que o servidor executa a conversão de conteúdo, se for necessário.
OnResolvedMessage
Ocorre depois que todos os destinatários da mensagem foram resolvidos e antes do roteamento ser determinado.
OnRoutedMessage
Ocorre depois que o servidor roteia a mensagem para o próximo salto e executa a conversão de conteúdo, se necessário. O servidor pode usar mais recursos para processar cada mensagem no evento OnRoutedMessage do que o evento OnSubmittedMessage , pois o servidor executará qualquer conversão de conteúdo necessária e determinará o próximo salto na rota da mensagem antes de executar o código no manipulador de eventos OnRoutedMessage .
OnSubmittedMessage
Ocorre depois que a mensagem é retirada da fila de envio. Use o evento OnSubmittedMessage se o agente de transporte RoutingAgent não exigir conversão de conteúdo, destinatários resolvidos ou dados de roteamento.

Criando um agente de transporte routingagent personalizado

O procedimento a seguir descreve como criar um agente de transporte RoutingAgent personalizado.

Para criar o agente de transporte

  1. Adicione referências aos namespaces.

       using Microsoft.Exchange.Data.Mime;
       using Microsoft.Exchange.Data.Transport;
       using Microsoft.Exchange.Data.Transport.Routing;
    
    

    Você pode encontrar esses namespaces no servidor do Exchange. Ao adicionar uma referência a esses namespaces, você terá acesso aos membros do RoutingAgent , bem como a outras classes usadas no Exchange 2013: compilar um exemplo de agente de transporte de log de largura de banda .

  2. Implemente a classe derivada para a classe RoutingAgentFactory .

       public class BandwidthLoggerFactory : RoutingAgentFactory
       {
           public override RoutingAgent CreateAgent(SmtpServer server)
           {
               return new BandwidthLogger(server);
           }
       }
    
    

    Esse código instanciará a classe derivada e substituirá o método CreateAgent para criar uma instância do seu novo agente personalizado. Métodos adicionais, como Fechar, também podem ser substituídos nesta classe para executar código personalizado.

  3. Defina seu agente.

       public class BandwidthLogger : RoutingAgent
       {
           // Your custom code goes here
           public BandwidthLogger(SmtpServer server)
           {
               Debug.WriteLine(logPrefix + "Agent constructor");
               this.server = server;
               this.OnSubmittedMessage += SubmittedMessage;
               this.OnRoutedMessage += RoutedMessage;
           }
       }
    
    

    Depois de definir sua classe de agente, você pode adicionar sua funcionalidade personalizada. Neste exemplo, os dois eventos OnSubmittedMessage e OnRoutedMessagesão redirecionados para seus manipuladores de eventos personalizados.

Confira também