Partager via


Créer un agent de transport RoutingAgent pour Exchange 2013

Découvrez comment créer un agent de transport RoutingAgent personnalisé à utiliser avec Exchange 2013.

S’applique à : Exchange Server 2013

Extraits de code associés et exemples d’applications :

Les classes RoutingAgentFactory et RoutingAgent sont les classes de base pour les agents de transport conçus pour s’exécuter sur le service de transport sur un serveur de boîtes aux lettres Exchange Server 2013. La classe RoutingAgent fournit les événements répertoriés dans le tableau suivant pour lesquels vous pouvez implémenter des gestionnaires dans votre agent de transport RoutingAgent.

Tableau 1. Événements de classe RoutingAgent

Événement Description
OnCategorizedMessage
Se produit après que le serveur a effectué la conversion de contenu, si nécessaire.
OnResolvedMessage
Se produit une fois que tous les destinataires du message ont été résolus et avant que le routage soit déterminé.
OnRoutedMessage
Se produit après que le serveur achemine le message vers le tronçon suivant et effectue la conversion de contenu, si nécessaire. Le serveur peut utiliser plus de ressources pour traiter chaque message dans l’événement OnRoutedMessage que l’événement OnSubmittedMessage , car le serveur effectue toute conversion de contenu nécessaire et détermine le tronçon suivant dans l’itinéraire du message avant d’exécuter le code dans le gestionnaire d’événements OnRoutedMessage .
OnSubmittedMessage
Se produit après que le message a été retiré de la file d’attente d’envoi. Utilisez l’événement OnSubmittedMessage si votre agent de transport RoutingAgent ne nécessite pas de conversion de contenu, de destinataires résolus ou de données de routage.

Création d’un agent de transport RoutingAgent personnalisé

La procédure suivante explique comment créer un agent de transport RoutingAgent personnalisé.

Pour créer l’agent de transport

  1. Ajoutez des références aux espaces de noms.

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

    Vous pouvez trouver ces espaces de noms sur votre serveur Exchange. En ajoutant une référence à ces espaces de noms, vous aurez accès aux membres RoutingAgent ainsi qu’à d’autres classes utilisées dans l’exemple Exchange 2013 : Créer un agent de transport de journalisation de bande passante .

  2. Implémentez la classe dérivée pour la classe RoutingAgentFactory .

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

    Ce code instancie la classe dérivée et remplace la méthode CreateAgent pour créer une instance de votre nouvel agent personnalisé. D’autres méthodes, telles que Close, peuvent également être remplacées dans cette classe pour exécuter du code personnalisé.

  3. Définissez votre agent.

       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;
           }
       }
    
    

    Après avoir défini votre classe d’agent, vous pouvez ajouter des fonctionnalités personnalisées. Dans cet exemple, les deux événements OnSubmittedMessage et OnRoutedMessagesont redirigés vers vos gestionnaires d’événements personnalisés.

Voir aussi