Créer un agent de transport SmtpReceiveAgent pour Exchange 2013
Découvrez comment créer un agent de transport SmtpReceiveAgent personnalisé à utiliser avec Exchange 2013.
S’applique à : Exchange Server 2013
Extraits de code associés et exemples d’applications :
Les classes SmtpReceiveAgentFactory et SmtpReceiveAgent vous permettent d’étendre le comportement du service de transport frontal sur un serveur d’accès au client ou du service de transport sur un serveur de boîtes aux lettres. Vous pouvez utiliser ces classes pour implémenter des agents de transport conçus pour répondre aux messages à mesure qu’ils entrent dans votre organisation.
Les classes SmtpReceiveAgentFactory et SmtpReceiveAgent incluent les événements répertoriés dans le tableau suivant.
Tableau 1. Événements de classe SmtpReceiveAgent
Événement | Description |
---|---|
OnAuthCommand |
Utilisez lorsque votre agent a besoin d’informations fournies uniquement dans la commande AUTH SMTP, par exemple un agent qui accepte ou rejette des tentatives de remise d’un message en fonction du type de méthode d’authentification utilisée. |
OnConnect |
Utilisez lorsque votre agent a besoin d’informations fournies uniquement lorsqu’une connexion est ouverte via SMTP au service de transport frontal, par exemple un agent qui effectue une action basée sur l’adresse ou le domaine du serveur SMTP distant. |
OnDataCommand |
Utilisez cet événement lorsque votre agent a besoin d’informations fournies dans la commande SMTP DATA . |
OnDisconnect |
Utilisez lorsque votre agent a besoin d’informations disponibles au moment de la déconnexion, telles que la date et l’heure actuelles, afin d’effectuer des calculs d’heure. |
OnEhloCommand |
Utilisez lorsque votre agent a besoin d’informations fournies dans la commande SMTP EHLO ; par exemple, si votre agent accepte ou rejette des messages en fonction de l’identité fournie dans la commande EHLO . |
OnEndOfAuthentication |
Utilisez lorsque votre agent a besoin d’informations disponibles une fois que le serveur distant a terminé le processus d’authentification ; par exemple, pour un agent qui effectue une action sur un message en fonction des informations d’authentification fournies par le serveur ou le client SMTP distant. |
OnEndOfData |
Utilisez lorsque votre agent doit effectuer une action basée sur les données disponibles dans le message. Cet événement ne se déclenche pas sur le service de transport frontal. Si votre agent de transport doit utiliser cet événement, vous devez l’installer sur un serveur de boîtes aux lettres. |
OnEndOfHeaders |
Utilisez lorsque votre agent doit effectuer une action basée sur les informations disponibles dans les en-têtes du message envoyé. |
Création d’un agent de transport SmtpReceiveAgent personnalisé
La procédure suivante explique comment créer un agent de transport SmtpReceiveAgent personnalisé.
Pour créer l’agent de transport
Ajoutez des références aux espaces de noms.
using Microsoft.Exchange.Data.Transport; using Microsoft.Exchange.Data.Transport.Smtp; using Microsoft.Exchange.Data.Transport.Email; using Microsoft.Exchange.Data.TextConverters;
Vous trouverez ces espaces de noms sur votre serveur Exchange 2013. Lorsque vous ajoutez une référence à ces espaces de noms, vous avez accès aux membres SmtpReceiveAgent ainsi qu’aux autres classes utilisées dans l’exemple Exchange 2013 : Générer un agent de transport de conversion de corps .
Implémentez la classe dérivée pour la classe SmtpReceiveAgentFactory .
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(); } }
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éfinissez votre 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); } }
Après avoir défini votre classe d’agent, vous pouvez ajouter vos fonctionnalités personnalisées. Dans cet exemple, l’événement OnEndOfData est redirigé vers votre gestionnaire d’événements personnalisé.