Criar um agente de transporte DeliveryAgent para o Exchange 2013
Descubra como criar um agente de transporte do DeliveryAgent personalizado para usar com o Exchange 2013.
Aplica-se a: Exchange Server 2013
As classes DeliveryAgentFactory<Manager> e DeliveryAgent 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. Você pode implementar manipuladores em seu agente de transporte DeliveryAgent para os eventos fornecidos pela classe DeliveryAgent que estão listados na tabela a seguir.
Tabela 1. Eventos da classe DeliveryAgent
Event | Descrição |
---|---|
OnCloseConnection |
Ocorre depois que o último item de email foi entregue e a conexão é fechada. |
OnDeliverMailItem |
Ocorre quando um item de email está pronto para ser entregue. |
OnOpenConnection |
Ocorre quando o agente de entrega é aberto para entrega por email. |
Criando um agente de transporte do DeliveryAgent personalizado
O procedimento a seguir descreve como criar um agente de transporte do DeliveryAgent personalizado.
Para criar o agente de transporte
Adicione referências aos namespaces.
using Microsoft.Exchange.Data.Transport; using Microsoft.Exchange.Data.Transport.Delivery;
Você pode encontrar esses namespaces no servidor do Exchange. Ao adicionar uma referência a esses namespaces, você terá acesso aos membros do DeliveryAgent .
Implemente a classe derivada para a classe 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"; } } } }
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. Uma classe DeliveryAgentManager é criada para substituir a propriedade SupportedDeliveryProtocol e definir o protocolo que seu agente usará.
Defina seu agente.
public class MyDeliveryAgent : DeliveryAgent { public MyDeliveryAgent(SmtpServer server) { this.OnCloseConnection += CloseConnection; this.OnDeliverMailItem += DeliverMailItem; this.OnOpenConnection += OpenConnection; } }
Depois de definir sua classe de agente, você pode adicionar sua funcionalidade personalizada. Neste exemplo, os três eventos, OnCloseConnection, OnDeliverMailItem e OnOpenConnection, são redirecionados para seus manipuladores de eventos personalizados.