Extensions du protocole SMTP pour Exchange Server 2007

 

S’applique à : Exchange Server 2007 SP3, Exchange Server 2007 SP2, Exchange Server 2007 SP1, Exchange Server 2007

Dernière rubrique modifiée : 2009-09-17

Le moteur SMTP (Simple Mail Transfer Protocol) est un répartiteur important d'événements COM. Le moteur SMTP principal a la charge de toutes les communications SMTP standard et gère la plupart des extensions de service SMTP standard (autrement dit, la norme ESMTP), comme défini dans RFC 821 et RFC 1869. Les événements de protocole permettent de modifier le protocole SMTP afin d'ajouter de nouvelles commandes ESMTP, voire même de modifier l'action de commandes existantes. Exchange Server 2007 utilise ces événements de protocole pour implémenter des commandes SMTP étendues spécifiques d'Exchange afin de communiquer avec d'autres serveurs Exchange de l'organisation de manière plus performante que ne le permet le protocole SMTP standard.

Vous pouvez vérifier que les commandes SMTP étendues d'Exchange Server 2007 sont chargées en utilisant Telnet pour vous connecter au port TCP de votre serveur virtuel SMTP. Lorsque vous envoyez la commande EHLO pour lancer une connexion ESMTP, la réponse du serveur indique les fonctionnalités prises en charge par le serveur virtuel SMTP. La commande HELP permet de répertorier les commandes standard.

Le tableau suivant décrit les fonctionnalités SMTP prises en charge par le service SMTP étendu Exchange.

Fonctionnalités SMTP prises en charge par Exchange Server 2007

Réponse du serveur SMTP Commentaires

8BITMIME

Indique que le serveur virtuel SMTP local prend en charge les messages MIME (Multipurpose Internet Mail Extensions) à huit bits.

AUTH, AUTH GSSAPI NTLM LOGIN, et AUTH=LOGIN

Indique que le serveur virtuel SMTP local prend en charge l'extension du service d'authentification SMTP. Les autres informations affichées après le mot clé AUTH spécifient les mécanismes d'authentification pris en charge.

BDAT, CHUNKING

Alternative à la commande DATA, qui comporte deux arguments. Lorsqu'un serveur virtuel SMTP répond à la commande EHLO avec CHUNKING, il indique qu'il prend en charge la commande BDAT et accepte les messages en blocs.

Le premier argument indique la longueur du paquet de données binaires, afin que l'hôte SMTP ne recherche pas en permanence la fin des données. Le serveur de réception compte les octets du message et, lorsque la taille du message est égale à la valeur envoyée par la commande BDAT, il considère qu'il a reçu toutes les données du message. Le deuxième argument indique si le paquet de données est le dernier dans la transmission actuelle. Cet argument est facultatif.

BINARYMIME

Indique que le serveur virtuel SMTP accepte les messages contenant des éléments binaires sans codage de transport. Ces messages doivent utiliser un paramètre BODY incluant la valeur BINARYMIME avec la commande MAIL. Lorsque le serveur SMTP accepte une commande MAIL avec le paramètre BODY défini sur BINARYMIME, il accepte de conserver tous les bits dans chaque octet transmis à l'aide de la commande BDAT. L'extension SMTP BINARYMIME ne peut être utilisée qu'avec CHUNKING.

DATA

Réponse envoyée par un hôte distant pour lancer le transfert du contenu du message.

DSN

Commande ESMTP permettant d'activer les notifications d'état de remise comme défini dans RFC 1891.

EHLO

Réponse envoyée par un client pour indiquer le début d'une session ESMTP. Le serveur peut indiquer les commandes ESMTP prises en charge dans sa réponse à la commande EHLO.

HELO

Réponse envoyée par un client en guise d'identification, généralement avec un nom de domaine, et pour indiquer le début d'une session SMTP standard.

HELP

Renvoie la liste des commandes SMTP prises en charge par le serveur virtuel SMTP dans les sessions SMTP standard (par opposition aux sessions ESMTP).

MAIL

Indique le début du transfert d'un message en identifiant l'expéditeur du message. Utilisé sous la forme MAIL FROM.

PIPELINING

Permet d'envoyer un flux de commandes sans devoir attendre une réponse après chaque commande.

QUIT

Indique la fin d'une session SMTP standard ou étendue.

RCPT

Identifie les destinataires du message. Utilisé sous la forme RCPT TO.

RSET

Annule l'intégralité de la transaction des messages et réinitialise le tampon.

SIZE

Fournit un mécanisme permettant au serveur virtuel SMTP d'indiquer la taille maximale de message prise en charge. Les serveurs compatibles doivent fournir des extensions de taille pour indiquer la taille maximale de message acceptable. Les hôtes distants ne doivent pas envoyer de messages dont la taille est supérieure à celle indiquée par le serveur.

STARTTLS

Indique que le serveur SMTP prend en charge le protocole SMTP sécurisé sur le protocole TLS (Transport Layer Security). L'extension de service SMTP pour le protocole SMTP sécurisé sur TLS est définie dans RFC 2487.

VRFY

Vérifie si la remise du message peut être effectuée dans une boîte aux lettres. Par exemple, VRFY TED vérifie que la boîte aux lettres de Ted réside sur le serveur local. Par défaut, cette commande est disponible dans Exchange 2007, mais elle n'effectue pas de vérification pour les utilisateurs. Le serveur informe l'hôte distant que les messages seront acceptés, bien qu'il ne soit pas possible de vérifier l'utilisateur. La réponse du serveur se présente comme suit : 252 2.1.5 Cannot VRFY user, but will take message for Ted@wingtiptoys.com 

XEXCH50

Permet d'envoyer des propriétés étendues d'enveloppe de transport des messages au format MDBEF (Message Database Encoding Format) lors d'une communication serveur-serveur Exchange 2007.

X-EXPS GSSAPI NTLM LOGIN, X-EXPS=LOGIN

X-EXPS est une commande propriétaire d'Exchange. Similaire à AUTH, elle indique les méthodes d'authentification pouvant être utilisées par les serveurs exécutant Exchange 2007, Exchange 2003 et Exchange 2000, comme suit :

GSSAPI   Acronyme de Generic Security Services Application Programming Interface. Méthode qui active l'authentification via Kerberos.

NTLM   Acronyme de Windows NT et LAN Manager. Méthode qui active l'authentification via le protocole Stimulation/Réponse de Windows NT.

LOGIN   Acronyme de AUTH LOGIN. Méthode d'authentification de type Texte en clair qui utilise un nom d'utilisateur et un mot de passe codé en base 64.

X-LINK2STATE

Ajoute la prise en charge de la propagation de l'état des liens au service SMTP. Pour plus d'informations sur l'algorithme d'état des liens utilisé pour la propagation des informations sur l'état des liens dans et entre les groupes de routage, consultez l'article Architecture de routage des messages.

Notes

Toutes les commandes SMTP spécifiques d'Exchange commencent par un « X » (sans les guillemets). Si ces commandes ne sont pas répertoriées dans la réponse EHLO de votre serveur virtuel SMTP, cela signifie que le serveur exécute la version de base du service SMTP de Windows Server. Dans ce cas, vous devez réinstaller Exchange Server 2007 et tous les Service Packs.

Catégories d'événements de protocole

Le moteur de protocole SMTP déclenche des évènements de protocole pour contrôler les communications hôte-hôte. Trois principaux types d'événements peuvent se produire lors de ces communications via SMTP :

  • Le service SMTP reçoit une commande SMTP

    Ces événements se produisent lorsqu'un hôte ou client SMTP distant se connecte au service SMTP local et établit une session à l'aide de la commande HELO ou EHLO. Les événements de cette catégorie sont les événements de protocole SMTP OnInboundCommand sur les connexions entrantes.

  • Le service SMTP reçoit une réponse SMTP

    Ces événements se produisent lorsque le service SMTP local reçoit les réponses d'un hôte ou client SMTP distant à des commandes SMTP sortantes. Les événements de cette catégorie sont les événements de protocole SMTP OnServerResponse sur les connexions sortantes.

  • Le service SMTP envoie une commande SMTP

    Ces événements se produisent lorsque le service SMTP local se connecte à un hôte SMTP distant et établit une session pour le transfert des messages. Les événements de cette catégorie sont les événements de protocole SMTP OnSessionBegin, OnMessageStart, OnPerRecipient, OnBeforeData et OnSessionEnd sur les connexions sortantes.

Le tableau suivant résume le rôle de chaque événement de protocole SMTP.

Événements de protocole dans le service SMTP

Événement Commentaires

OnInboundCommand

Se produit lorsque le service de protocole SMTP reçoit une commande SMTP, ce qui permet à un récepteur d'événements de répondre.

OnServerResponse

Se produit lorsque le service SMTP reçoit une réponse SMTP à une commande SMTP envoyée précédemment.

OnSessionBegin

Se produit avant la transmission de la commande EHLO.

OnMessageStart

Se produit avant la transmission de la commande MAIL FROM.

OnPerRecipient

Se produit avant la transmission de la commande RCPT TO.

OnBeforeData

Se produit avant la transmission de la commande de protocole DATA.

OnSessionEnd

Se produit avant la transmission de la commande QUIT.

Extensions de protocole SMTP spécifiques d'Exchange

Le programme d'installation d'Exchange Server 2007 inscrit des extensions de protocole SMTP spécifiques d'Exchange pour les fonctionnalités de protocole SMTP suivantes.

XEXCH50

XEXCH50 est une extension ESMTP Exchange utilisée pour relayer certaines propriétés de message, telle que les propriétés d'enveloppe, les propriétés de message et les propriétés de destinataire. La commande XEXCH50 est une commande courte. Une commande XEXCH50 qui a reçu une réponse de type succès est suivie d'un objet BLOB (Binary Large Object) de taille variable. (La taille correspond au premier argument de la commande XEXCH50.)

Cette fonctionnalité est implémentée à l'aide de neuf récepteurs d'événements pour la prise en charge d'une communication intégrale entre deux serveurs exécutantExchange. Le tableau suivant mappe les événements de protocole à leurs récepteurs d'événements XEXCH50 respectifs. Tous les récepteurs XEXCH50 sont implémentés dans Peexch50.dll, qui réside dans le répertoire Program Files\Exchsrvr\bin.

Extensions de protocole pour la commande XEXCH50

Récepteur d'événements Événement de protocole Commentaires

Exchange SMTP Protocol XEXCH50 Before Data Sink

OnBeforeData

Notifie le récepteur XEXCH50 que la commande de protocole DATA est sur le point d'être transmise. Le récepteur XEXCH50 peut alors demander au service SMTP d'envoyer une commande XEXCH50 au lieu d'initialiser une communication XEXCH50.

Exchange SMTP Protocol XEXCH50 Inbound EHLO Sink

OnInboundCommand

Notifie le récepteur XEXCH50 qu'une commande EHLO a été reçue.

Exchange SMTP Protocol XEXCH50 Inbound XEXCH50 Sink

OnInboundCommand

Implémente la commande XEXCH50 pour démarrer une conversation XEXCH50.

Exchange SMTP Protocol XEXCH50 Inbound MAIL Sink

OnInboundCommand

Implémente la commande MAIL dans une conversation XEXCH50.

Exchange SMTP Protocol XEXCH50 Inbound MAIL Sink

OnInboundCommand

Permet au serveur virtuel SMTP local de recevoir des informations se rapportant au destinataire dans une communication XEXCH50 entrante.

Exchange SMTP Protocol XEXCH50 Per Recipient Event Sink

OnPerRecipient

Permet au serveur virtuel SMTP local d'envoyer des informations se rapportant au destinataire dans une communication XEXCH50 sortante.

Exchange SMTP Protocol XEXCH50 Ehlo Response Sink

OnServerResponse

Permet au serveur virtuel SMTP local de recevoir une réponse après l'envoi d'une commande EHLO à l'hôte distant. La réponse de l'hôte distant peut confirmer la prise en charge des communications XEXCH50. Exchange inclut XEXCH50 dans la liste des commandes prises en charge qui sont renvoyées à l'hôte qui se connecte.

Exchange SMTP Protocol XEXCH50 Response Sink

OnServerResponse

Permet au serveur virtuel SMTP local de recevoir une réponse à une commande XEXCH50 sortante émise précédemment. Par exemple, si le service SMTP local a émis une commande XEXCH50 sans authentification préalable, le serveur distant répond comme suit : 504 Need to authenticate first.

Exchange SMTP Protocol XEXCH50 RCPT Response Sink

OnServerResponse

Permet au serveur virtuel SMTP local de recevoir des informations d'état du serveur Exchange distant pour chaque destinataire pour lequel il existe une commande RCPT sortante. La mise en forme de l'adresse d'un destinataire est peut-être incorrecte ou le serveur ne peut pas remettre le message. Si les informations relatives au destinataire sont correctes, le serveur virtuel SMTP distant renvoie l'adresse au service SMTP local, avec des informations d'état telles que : 250 2.1.5 administrator@tailspintoys.com.

X-LINK2STATE

Les commandes et réponses X-LINK2STATE sont des extensions spécifiques du protocole SMTP. Cette commande propriétaire d'Exchange permet l'échange d'informations sur la topologie de routage entre les serveurs SMTP Exchange. La taille maximale autorisée pour les commandes et réponses X-LINK2STATE est de 1 024 octets. Cette valeur correspond généralement à la taille réelle des commandes et réponses X-LINK2STATE.

Cette fonctionnalité est implémentée à l'aide de cinq récepteurs d'événements. Toutefois, un de ces récepteurs d'événements est utilisé pour deux événements distincts, comme illustré dans le tableau suivant. Tous les récepteurs X-LINK2STATE sont implémentés dans Xlsasink.dll, qui réside dans le répertoire \Program Files\Exchsrvr\bin.

Extensions de protocole pour la commande X-LINK2STATE

Récepteur d'événements Événement de protocole Commentaires

EHLO Inbound Command Handler Sink for XLSA

OnInboundCommand

Notifie les récepteurs X-LINK2STATE qu'une commande EHLO entrante a été reçue.

X-LSA Inbound Command Handler Sink

OnInboundCommand

Notifie les récepteurs X-LINK2STATE qu'une commande X-LINK2STATE entrante a été reçue.

X-LSA Sink

OnMessageStart, OnSessionEnd

Indique le début (commande MAIL) et la fin (commande QUIT) d'une communication X-LINK2STATE sortante. Dans la mesure où le serveur virtuel SMTP distant est le dernier destinataire du paquet Orginfo en cours de transmission, il n'est pas nécessaire de spécifier les destinataires dans une commande RCPT sortante. Ce récepteur d'événements transmet les informations sur l'état des liens.

X-LSA Response Handler Sink

OnServerResponse

Répond à une commande X-LINK2STATE entrante à l'aide d'informations sur la méthode de transmission des informations sur l'état des liens. Un exemple de réponse est : 200 LAST CHUNK={00000029} MULTI (5) ({00000010} DONE_RESPONSE), qui indique le dernier bloc de données envoyé par ce serveur virtuel SMTP.

EHLO Response Handler Sink for X-LSA

OnServerResponse

Répond à une commande EHLO entrante en énumérant la commande X-LINK2STATE dans la réponse du serveur.

X-EXPS

X-EXPS est un verbe qui est exclusif à Exchange, bien qu'il soit semblable à AUTH. La taille des blocs de données ou le nombre de blocs de données échangés n'est pas limité. La syntaxe des commandes de données et réponses dépend du package AUTH que vous sélectionnez, tel que LOGIN, NTLM, GSSAPI ou autre. Pour plus d'informations, consultez la RFC AUTH.

Bien que l'acronyme EXPS signifie Exchange Protocol Security, le seul protocole auquel il fait référence est le protocole SMTP. Certains verbes qui sont utilisés dans Exchange 2000 Server et Exchange Server 2003 sont exclusifs à ces produits et sont associés aux verbes ESMTP. Ils sont connus sous le nom de verbes ESMTP X.

Ces fonctionnalités sont implémentées à l'aide de cinq récepteurs d'événements, comme illustré dans le tableau suivant. Toutes les extensions de sécurité de protocole sont implémentées dans Exps.dll, qui réside dans le répertoire Program Files\Exchsrvr\bin.

Extensions de sécurité de protocole X-EXPS

Récepteur d'événements Événement de protocole Commentaires

Exchange SMTP Protocol Security EXPS-EOD Sink

OnInboundCommand

Indique la fin du transfert des données ( _EOD).

Exchange SMTP Protocol Security EXPS-Aux Sink

OnInboundCommand

Indique une commande AUTH entrante.

Exchange SMTP Protocol Security EHLO Sink

OnInboundCommand, OnServerResponse

Indique une commande EHLO entrante et répond à EHLO en répertoriant la commande X-EXPS dans la réponse du serveur.

Exchange SMTP Protocol Security Mail Sink

OnInboundCommand, OnServerResponse, OnMessageStart

Indique le début du transfert des données. Ce récepteur d'événements est implémenté pour tous les scénarios appropriés impliquant la commande MAIL. Il traite les événements qui signalent une commande MAIL entrante, répondent à une commande MAIL entrante et peuvent émettre une commande MAIL sortante.

Exchange SMTP Protocol Security EXPS Sink

OnInboundCommand, OnServerResponse, OnSessionStart

Indique le début d'une session X-EXPS. Ce récepteur d'événements est implémenté pour tous les scénarios appropriés impliquant la commande X-EXPS. Il traite les événements qui signalent une commande X-EXPS entrante, répondent à une commande X-EXPS entrante et peuvent émettre une commande X-EXPS sortante.

SPAM Control

Cette fonctionnalité est implémentée à l'aide de trois récepteurs d'événements qui traitent les informations relatives à l'expéditeur et aux destinataires dans les connexions SMTP entrantes, comme illustré dans le tableau suivant. Ces récepteurs d'événements sont implémentés dans Turflist.dll, qui réside dans le répertoire \Program Files\Exchsrvr\bin.

Extensions SMTP SPAM Control

Récepteur d'événements Événement de protocole Commentaires

RCPT Inbound Command Handler Sink

OnInboundCommand

Indique une commande RCPT entrante avec une adresse de destinataire à vérifier.

MAIL Inbound Command Handler Sink for TURF

OnInboundCommand

Indique une commande MAIL entrante avec une adresse de destinataire à vérifier.

EOD Inbound Command Handler Sink

OnInboundCommand

Indique une commande _EOD entrante.

X-ANONYMOUSTLS

Ce paramètre est une nouveauté d'Exchange 2007. Il active la sélection d'un certificat TLS (Transport Layer Security) anonyme entrant ou sortant. Exchange interroge le service d'annuaire Active Directory pour extraire l'empreinte du certificat sur le serveur. L'attribut msExchServerInternalTLSCert sur l'objet serveur stocke l'empreinte du certificat. Si l'attribut msExchServerInternalTLSCert ne peut pas être lu ou si la valeur est nulle, Exchange n'annonce pas X-ANONYMOUSTLS dans la session SMTP et aucun certificat n'est chargé.

XLONGADDR

Ce paramètre est une nouveauté d'Exchange 2007. Ce paramètre permet au connecteur de réception d'accepter des adresses de messagerie X.400 longues. Les adresses de messagerie X.400 sont encapsulées dans des adresses de messagerie SMTP à l'aide de la méthode d'encapsulation IMCEA (Internet Mail Connector Encapsulated Address).

Lorsque la valeur de ce paramètre est $False, la longueur maximale d'une adresse de messagerie SMTP complète est de 571 caractères.

Lorsque la valeur de ce paramètre est $True, les modifications suivantes sont effectuées :

  • Le mot clé XLONGADDR est publié dans la réponse EHLO du connecteur de réception.

  • La longueur de ligne acceptée d'une session SMTP est portée à 8 000 caractères.

  • Les adresses longues valides sont acceptées par les commandes SMTP MAIL FROM : et RCPT TO: .

C'est pourquoi les adresses de messagerie X.400 peuvent dépasser 1 860 caractères après une encapsulation IMCEA.

La plage d'entrée valide pour ce paramètre est $True ou $False. La valeur par défaut est $false. Vous ne pouvez modifier ce paramètre que sur des connecteurs de réception configurés sur des serveurs de transport Hub.

XRDST

Ce paramètre est une nouveauté d'Exchange 2007. Cette extension de protocole est utilisée pour communiquer une destination de routage associée à un message au serveur distant. Si un serveur distant n'annonce pas XRDST et si le message à envoyer requiert la prise en charge de XRDST, l'ID d'événement MSExchangeTransport 2021 est consigné dans le journal des événements. Le nom symbolique de cet événement est tuple_SmtpSendUnableToTransmitRDst. Cet événement indique que le message ne peut pas être envoyé.

EXPS EXCHANGEAUTH GSSAPI NTLM

Ce paramètre est une nouveauté d'Exchange 2007. Ces extensions des services Connecteur de réception par défaut sont annoncées après X-ANONYMOUSTLS.

X-EXCHANGEAUTH SHA256

Ce paramètre est une nouveauté d'Exchange 2007. Ces extensions des services Connecteur de réception par défaut sont annoncées après X-ANONYMOUSTLS.