Agents de transport
S’applique à : Exchange Server 2013
Les agents de transport vous permettent d'installer des logiciels personnalisés créés par Microsoft, des fournisseurs tiers ou votre organisation sur un serveur Exchange Server. Ces logiciels peuvent ensuite traiter tous les messages électroniques qui transitent par un pipeline de transport. Dans Microsoft Exchange Server 2013, le pipeline de transport est composé des processus suivants :
Service de transport frontal sur les serveurs d'accès au client
Service de transport sur les serveurs de boîtes aux lettres
Service de transport de boîte aux lettres sur les serveurs de boîtes aux lettres
Service de transport sur les serveurs de transport Edge
Pour plus d'informations sur le pipeline de transport, voir Flux de messagerie.
Comme dans la version antérieure de Microsoft Exchange, le transport Exchange 2013 propose l'extensibilité via le SDK des agents de transport Microsoft Exchange Server 2013. La version Exchange 2013 du Kit de développement logiciel (SDK) est basée sur Microsoft .NET Framework version 4.0 et permet à des tiers d’implémenter les classes prédéfinies suivantes :
SmtpReceiveAgent
RoutingAgent
DeliveryAgent
Suite à la vérification de leur conformité par rapport aux bibliothèques du SDK, les assemblies sont enregistrées avec Exchange 2013, qui charge les agents et fait appel à leurs gestionnaires d'événements pendant des étapes spécifiques des sessions SMTP ou de traitement des messages. Ces étapes ou événements font partie des définitions des agents. Les informations d'enregistrement des agents sont stockées dans un fichier de configuration XML.
La liste suivante explique les exigences relatives à l'utilisation des agents de transport dans Exchange 2013.
Le service de transport sur les serveurs de boîtes aux lettres et les serveurs de transport Edge prennent entièrement en charge toutes les classes prédéfinies dans le Kit de développement logiciel (SDK). Par conséquent, tous les agents de transport tiers écrits pour les rôles de serveur de transport Hub ou Transport Edge dans Microsoft Exchange Server 2010 doivent fonctionner dans le service de transport dans Exchange 2013.
Le service de transport frontal prend uniquement en charge la classe SmtpReceiveAgent dans le Kit de développement logiciel (SDK), et les agents tiers ne peuvent pas fonctionner sur l’événement SMTP OnEndOfData .
Le service de transport de boîtes aux lettres ne prend pas du tout en charge le Kit de développement logiciel (SDK). Vous ne pouvez donc pas utiliser d’agents tiers dans le service de transport de boîtes aux lettres.
La prise en charge des anciens agents de transport basés sur les versions de .NET Framework antérieures à la version 4.0 n'est pas activée par défaut, mais vous pouvez l'activer. Pour plus d'informations, consultez la rubrique Activer la prise en charge des agents de transport hérités.
Mises à jour de la gestion des agents de transport
En raison des mises à jour du pipeline de transport Exchange 2013, les cmdlets de l'agent de transport doivent faire la distinction entre le service de transport et le service de transport frontal, surtout si le serveur d'accès au client et le serveur de boîtes aux lettres sont installés sur le même ordinateur. Pour plus d'informations, voir Gérer les agents de transport.
Les applets de commande de gestion de l’Agent de transport manipulent un fichier de configuration situé à l’emplacement %ExchangeInstallPath%TransportRoles\Shared
. Pour le service de transport sur les serveurs de boîtes aux lettres et les serveurs de transport Edge, le fichier est agents.config
. Pour le service de transport frontal sur les serveurs d’accès au client, le fichier est fetagents.config
. Les deux fichiers utilisent le même format que dans Exchange 2010. Pour plus d'informations sur la gestion des agents de transport, voir Gérer les agents de transport.
Agents de transport et événements SMTP
Les agents de transport utilisent des événements SMTP. Ces événements sont déclenchés lors du déplacement de messages dans le pipeline de transport. Les événements SMTP permettent aux agents de transport d'accéder à des messages en des points spécifiques durant la conversation SMTP et durant le routage de messages dans l'organisation.
Notez qu'il existe de nouveaux événements de réception SMTP dans Exchange 2013. Ceux-ci sont surviennent dans le service de transport frontal sur les serveurs d'accès au client, dans le service de transport sur les serveurs de boîtes aux lettres et les serveurs de transport Edge, et dans le service de distribution de transport de boîtes aux lettres sur les serveurs de boîtes aux lettres. Le catégoriseur n'existe que dans le service de transport sur les serveurs de boîtes aux lettres et les serveurs de transport Edge. Pour plus d'informations sur les services de transport et le catégoriseur, voir Routage du courrier.
Le tableau suivant présente les événements SMTP qui donnent accès à des messages dans le pipeline de transport.
Événements de réception SMTP
Séquence | Événement SMTP | Description |
---|---|---|
1 | OnConnectEvent | Cet événement est déclenché par la connexion initiale à partir d'un hôte SMTP distant. |
2 | OnHeloCommand | Cet événement est déclenché lorsque la HELO commande est émise par l’hôte SMTP distant. |
3 | OnEhloCommand | Cet événement est déclenché lorsque la EHLO commande est émise par l’hôte SMTP distant. |
4 | OnStartTlsCommand | Cet événement est déclenché lorsque la STARTTLS commande est émise par l’hôte SMTP distant. |
5 | OnAuthCommand | Cet événement est déclenché lorsque la AUTH commande est émise par l’hôte SMTP distant. |
6 | OnProcessAuthentication | Cet événement est déclenché lors du traitement de l'authentification avec l'hôte SMTP distant. |
7 | OnEndOfAuthentication | Cet événement est déclenché lorsque l'hôte SMTP distant a terminé l'authentification. |
8 | OnXSessionParamsCommand | Cet événement est déclenché lorsque la XSESSIONPARAMS commande est émise par l’hôte SMTP distant. |
9 | OnMailCommand | Cet événement est déclenché lorsque la MAIL FROM commande est émise par l’hôte SMTP distant. |
10 | OnRcptToCommand | Cet événement est déclenché lorsque la RCPT TO commande est émise par l’hôte SMTP distant. |
11 | OnDataCommand | Cet événement est déclenché lorsque la DATA commande (texte) ou BDAT (données binaires) est émise par l’hôte SMTP distant. |
12 | OnEndOfHeaders | Cet événement est déclenché lorsque l'hôte SMTP distant a terminé de soumettre les en-têtes de message électronique. Cela est indiqué par une ligne vide (<CRLF> ) qui sépare les en-têtes de message et le corps du message. |
13 | OnProxyInboundMessage | Cet événement est déclenché lorsqu’une session SMTP entrante est relayée ou envoyée par proxy par le service de transport frontal sur un serveur d’accès au client vers le service de transport sur un serveur de boîtes aux lettres. |
14 | OnEndOfData | Cet événement est déclenché lorsque l'hôte SMTP distant émet une commande de fin des données. Pour les sessions de texte démarrées par la DATA commande , l’indicateur de fin de données est <CRLF>.<CRLF> . Pour les sessions binaires démarrées par la BDAT commande , la fin de l’indicateur de données est BDAT LAST . |
** | OnHelpCommand | Cet événement est déclenché si la HELP commande est émise par l’hôte SMTP distant. |
** | OnNoopCommand | Cet événement est déclenché si la NOOP commande est émise par l’hôte SMTP distant. |
** | OnReject | Cet événement est déclenché si l'hôte SMTP de réception émet une notification d'état de remise temporaire ou permanente destinée à l'hôte SMTP d'envoi. |
** | OnRsetCommand | Cet événement est déclenché si la RSET commande est émise par l’hôte SMTP d’envoi. |
15 | OnDisconnectEvent | Cet événement est déclenché par la déconnexion de la conversation SMTP par l'hôte SMTP de réception ou d'envoi. En règle générale, cela se produit lorsque la QUIT commande est émise par l’hôte SMTP distant. |
** Ces événements peuvent survenir n’importe quand après OnConnectEvent mais avant OnDisconnectEvent.
Événements du catégoriseur
Séquence | Événement SMTP | Description |
---|---|---|
1 | OnSubmittedMessage | Cet événement est déclenché quand un message arrive dans la file d'attente de soumission du service de transport sur le serveur de boîtes aux lettres de réception ou le serveur de transport Edge. |
2 | OnResolvedMessage | Cet événement est déclenché lorsque tous les destinataires ont été résolus, mais avant que le saut suivant ait été déterminé pour chaque destinataire. L'événement de routage OnResolvedMessage permet que des événements ultérieurs remplacent le comportement de routage par défaut à l'aide de la méthode SetRoutingOverride par destinataire. |
3 | OnRoutedMessage | Cet événement est déclenché après la catégorisation des messages, l'extension des listes de distribution et la résolution des destinataires. |
4 | OnCategorizedMessage | Cet événement est déclenché lorsque le catégoriseur termine le traitement du message. |
Priorité des agents de transport
Deux facteurs déterminent l’ordre dans lequel les agents de transport agissent sur les messages dans le pipeline de transport :
L'événement SMTP où l'agent de transport est inscrit et le moment où cet événement SMTP détecte des messages.
La valeur de priorité attribuée à l'agent de transport s'il y a plusieurs agents inscrits au même événement SMTP. La priorité la plus élevée est 1. Une valeur entière supérieure indique une priorité plus faible pour l'agent.
Par exemple, supposons que vous avez configuré les agents de transport suivants :
L'agent de transport A avec une priorité de 1 et l'agent de transport C avec une priorité de 2 sont inscrits à l'événement SMTP OnEndOfHeaders.
L'agent de transport B avec une priorité de 4 est inscrit à l'événement SMTP OnMailCommand.
L'agent de transport B est appliqué en premier aux messages car l'événement OnMailCommand détecte les messages avant l'événement OnEndOfHeaders. Lorsque les messages atteignent l'événement OnEndOfHeaders, l'agent de transport A est appliqué avant l'agent de transport C, car il est prioritaire (valeur entière plus faible).
Agents de transport intégrés
Exchange 2013 comprend de nombreux agents de transport intégrés qui offrent des fonctionnalités telles que la protection anti-courrier indésirable, les règles de transport et la journalisation. La plupart des agents de transport intégrés sur les serveurs de boîtes aux lettres et les serveurs d'accès au client Exchange 2013 sont invisibles et non gérables via les cmdlets de gestion des agents de transport. La quasi-totalité des agents de transport intégrés qui sont visibles et gérables se trouvent dans le service de transport sur les serveurs de boîtes aux lettres et sur les serveurs de transport Edge.
Les agents de transport intégrés les plus intéressants sur les serveurs de boîtes aux lettres sont décrits dans le tableau suivant. Notez qu’un grand nombre d’agents de transport invisibles et non gérables a été omis.
Agents de transport intégrés intéressants sur les serveurs de boîtes aux lettres
Nom de l’agent | Gérable ? | Priorité | Événements SMTP ou du catégoriseur |
---|---|---|---|
Agent de règles de transport | Oui | 1 | OnResolvedMessage |
Agent de programme malveillant | Oui | 2 | OnSubmittedMessage |
Agent de routage de messagerie texte | Oui | 3 | OnSubmittedMessage |
Agent de remise de la messagerie texte | Oui | 4 | s/o |
Agent de journalisation | Non | Non configurable | OnRoutedMessage |
Agent de déchiffrement du rapport de journal | Non | Non configurable | OnCategorizedMessage |
Agent de déchiffrement RMS | Non | Non configurable | OnSubmittedMessage |
Agent de chiffrement RMS | Non | Non configurable |
OnSubmittedMessage OnRoutedMessage |
Agent de déchiffrement de protocole RMS | Non | Non configurable | OnEndOfData |
Sur les serveurs de transport Edge, la plupart des agents de transport intégrés sont visibles et gérables par les cmdlets de gestion des agents de transport ou par d'autres cmdlets propres à des fonctionnalités.
Les agents de transport intégrés les plus intéressants sur les serveurs transport Edge sont décrits dans le tableau suivant. Notez que les agents de transport invisibles et non gérables a été omis.
Agents de transport intégrés intéressants sur les serveurs de Transport Edge
Nom de l’agent | Gérable ? | Priorité | Événements SMTP ou du catégoriseur |
---|---|---|---|
Agent de filtrage des connexions | Oui | 1 |
OnConnectEvent OnMailCommand OnRcptComand OnEndOfHeaders |
Agent de réécriture d'adresses pour les messages entrants | Oui | 2 |
OnRcptComand OnEndOfHeaders |
Agent d'application de règles de transport Edge | Oui | 3 | OnEndOfData |
Agent de filtrage du contenu* | Oui | 4 | OnEndOfData |
Agent d'ID de l'expéditeur* | Oui | 5 | OnEndOfHeaders |
Agent de filtrage des expéditeurs* | Oui | 6 |
OnMailCommand OnEndOfHeaders |
Agent de filtrage des destinataires | Oui | 7 | OnRcptCommand |
Agent d'analyse de protocole* | Oui | 8 |
OnConnectEvent OnEndOfHeaders OnEndOfData OnReject OnRsetCommand OnDisconnectEvent |
Agent de filtrage des pièces jointes | Oui | 9 | OnEndOfData |
Agent de réécriture d'adresses pour les messages sortants | Oui | 10 |
OnSubmittedMessage OnRoutedMessage |
* Vous pouvez également installer et configurer ces agents anti-courrier indésirable sur les serveurs de boîtes aux lettres. Pour plus d'informations, voir Activer la fonctionnalité de blocage du courrier indésirable sur un serveur de boîtes aux lettres.
Dépanner les agents de transport
Pour résoudre les problèmes liés aux agents de transport, vous pouvez utiliser les fonctionnalités suivantes :
Get-TransportPipeline : cette applet de commande affiche les événements SMTP et les agents de transport correspondants qui rencontrent des messages sur le serveur Exchange. Pour plus d'informations, voir Afficher les agents de transport dans le pipeline de transport.
Suivi de pipeline : le suivi de pipeline crée un instantané exact d’un message avant et après qu’il rencontre chaque agent de transport. Cela vous permet de rechercher un agent de transport qui fournit des résultats inattendus. Pour plus d'informations, voir Suivi du pipeline.