Lire en anglais

Partager via


Extensions de protocole SMTP

 

Dernière rubrique modifiée : 2006-11-03

Le moteur de files d'attente avancé n'est pas le seul répartiteur d'événements COM dans le service SMTP. Le moteur de protocole SMTP est également un répartiteur important d'événements COM, plus particulièrement pour les événements de protocole SMTP. Le moteur de protocole SMTP principal a la charge de toutes les communications SMTP et il 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 changer l'action de commandes existantes. Exchange Server 2003 utilise ces événements de protocole pour implémenter des commandes SMTP étendues spécifiques à 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 2003 sont chargées lorsque vous vous connectez au port TCP de votre serveur virtuel SMTP à l'aide de Telnet. Comme l'illustre la figure suivante, la réponse du serveur indique les fonctionnalités prises en charge par le serveur virtuel SMTP lorsque vous initialisez un connexion ESMTP à l'aide de la commande EHLO. La commande HELP permet de répertorier les commandes standard.

7fee5659-17ca-4ed0-9e01-97592772cb9e

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

Fonctionnalités SMTP prises en charge dans Exchange Server 2003

Réponse du serveur SMTP Commentaires

8BITMIME

Indique que le serveur virtuel SMTP local prend en charge les messages MIME (Multipurpose Internet Mail) à 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 informations complémentaires affichées après le mot clé AUTH identifient 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 au mot clé EHLO à l'aide de CHUNKING, il indique qu'il prend en charge la commande BDAT et qu'il peut accepter les messages en blocs.

Le premier argument indique la longueur du paquet de données binaires, afin que l'hôte SMTP n'ait pas à identifier continuellement 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 second argument indique si le paquet de données est le dernier paquet 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 en utilisant un paramètre BODY dont la valeur est « 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 peut être utilisée avec CHUNKING uniquement.

DATA

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

DSN

Commande ESMTP qui active les notifications d'état de remise, tel que 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 sa prise en charge des commandes ESMTP dans sa réponse à EHLO (figure 6.14).

ENHANCEDSTATUSCODES

Indique que le serveur SMTP fournit des codes d'état d'erreur avancés. La partie texte de toutes les réponses d'état SMTP, hormis le message d'accueil initial et toute réponse à HELO ou à EHLO, est précédée d'un code d'état tel que défini dans RFC 1893.

ETRN

Réponse envoyée par un serveur SMTP pour demander l'envoi par le serveur virtuel local de tous les messages électroniques se trouvant dans sa file d'attente pour les domaines spécifiés dans la commande ETRN.

HELO

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

HELP

Renvoie une liste de 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ée 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ée sous la forme RCPT TO.

RSET

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

SIZE

Offre un mécanisme par lequel le serveur virtuel SMTP peut indiquer la taille maximale des messages prise en charge. Les serveurs compatibles doivent fournir des extensions de taille pour indiquer la taille maximale des messages acceptable. Les hôtes distants ne doivent pas envoyer de messages dont la taille est supérieure à celle spécifié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éfini dans RFC 2487.

TURN

Permet à un hôte distant et à l'hôte local d'inverser leurs rôles et d'envoyer des messages dans l'autre direction, sans avoir à établir une nouvelle connexion.

VRFY

Vérifie si la remise du message peut être effectuée dans une boîte aux lettres. Par exemple, VRFY PIERRE vérifie si la boîte aux lettres de Pierre réside sur le serveur local. Par défaut, cette commande est disponible dans Exchange 2003, 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 <Pierre@TailspinToys.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 Server 2003.

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 Server 2003 et Exchange 2000 Server, comme suit :

  • GSSAPI   Acronyme de Generic Security Services Application Programming Interface. Méthode qui active l'authentification via Kerberos.
  • NTLM   Acronyme de Windows NT and LAN Manager. Méthode qui active l'authentification à l'aide du 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és en base 64.

X-LINK2STATE

Ajoute la prise en charge de la propagation des informations sur 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, consultez la rubrique Architecture de routage des messages.

noteRemarque :
Toutes les commandes SMTP spécifiques à Exchange commence 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 2003. Dans ce cas, vous devez réinstaller Exchange Server 2003, de même que tous les Services Packs disponibles.

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 qu'il établit une session à l'aide de la commande HELO ou EHLO. Les événements de cette catégorie sont des événements SMTP Protocol 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 d'un client SMTP distant à des commandes SMTP sortantes. Les événements de cette catégorie sont des événements SMTP Protocol 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 qu'il établit une session pour le transfert des messages. Les événements de cette catégorie sont des événements SMTP Protocol 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 à Exchange

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

  • 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écutant Exchange Server. Le tableau suivant mappe les événements de protocole à leurs récepteurs 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 RCPT 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 (figure 6.14).

    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 peut répondre 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 administrateur@tailspintoys.com.

  • **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   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.

Pour plus d'informations

Pour plus d'informations sur SMTP, consultez la rubrique Serveur SMTP.