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 :

  1. L'événement SMTP où l'agent de transport est inscrit et le moment où cet événement SMTP détecte des messages.

  2. 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.