Utiliser Telnet pour tester la communication SMTP

 

S’applique à : Exchange Server 2010 SP2, Exchange Server 2010 SP3

Dernière rubrique modifiée : 2016-11-28

Cette rubrique décrit comment utiliser Telnet pour tester la communication SMTP (Simple Mail Transfer Protocol) entre deux serveurs de messagerie. Par défaut, SMTP écoute sur le port 25. Si vous utilisez Telnet sur le port 25, vous pouvez entrer les commandes SMTP utilisées pour la connexion à un serveur SMTP et envoyer un message comme si votre session Telnet se trouvait sur un serveur de messagerie SMTP. Vous pouvez voir si chaque étape réussit ou échoue au cours du processus de connexion et de dépôt de message.

La liste suivante décrit les scénarios dans lesquels vous pouvez utiliser Telnet pour tester la communication SMTP depuis ou vers les serveurs de transport existant dans votre organisation Microsoft Exchange Server :

  • Connectez-vous au serveur de transport Edge de votre organisation à partir d’un hôte situé en dehors de votre réseau de périmètre et envoyez un message de test.

  • Connectez-vous à un serveur de messagerie distant depuis le serveur de transport Edge de votre organisation et envoyez un message de test.

La procédure de cette rubrique vous indique comment utiliser le client Telnet qui est un composant inclus à Microsoft Windows. Les clients Telnet tiers nécessitent peut-être une syntaxe différente de celle du composant Windows Telnet.

Conditions préalables

  • Configurer un connecteur de réception pour autoriser l’accès anonyme ou l’authentification de base   Puisque les transferts de message qui se produisent normalement entre les serveurs de transport Hub sont chiffrés et authentifiés, le serveur de transport Hub interne devrait disposer d’un connecteur de réception configuré pour permettre l’accès anonyme ou l’authentification de base pour recevoir des messages à l’aide de Telnet sur le port 25 pour tester la communication. L’accès anonyme est requis pour les serveurs Internet.

    RemarqueRemarque :
    Lorsque vous envoyez un message à un connecteur de réception acceptant l’authentification de base, vous devez disposer d’un utilitaire pour convertir les chaînes de texte utilisées pour le nom d’utilisateur et le mot de passe au format Base64. En cas d’utilisation de l’authentification de base, il est facile de discerner le nom d’utilisateur et le mot de passe. Aussi, une authentification de base sans chiffrement est déconseillée.
  • Se connecter à un serveur de messagerie distant   Vous souhaiterez peut-être vouloir vous connecter à un serveur de messagerie distant depuis le serveur de transport Edge de votre organisation. Cela vous aidera à éviter le rejet du message de test par les serveurs de messagerie SMTP Internet qui sont configurés pour valider l’adresse IP source, le nom de domaine du DNS (domain name system) correspondant et l’adresse IP de la recherche inversée d’un hôte Internet essayant d’envoyer un message au serveur.

  • Installer et/ou activer le client Telnet   Vous devrez peut-être effectuer une ou plusieurs des opérations suivantes avant de pouvoir utiliser Telnet pour tester la communication SMTP entre des serveurs de messagerie :

    • Installez le client Telnet si vous ne l’avez pas déjà fait. Voir Installer le client Telnet pour plus d’informations sur la manière d’installer le client Telnet sur Windows Vista ou Windows Server 2008.

    • Activez le client Telnet sur Windows Server 2008. Voir la procédure ultérieurement dans cette rubrique.

  • Recherchez le nom de domaine complet ou l’adresse IP d’un serveur SMTP. Si vous ne connaissez pas le nom de domaine complet ou l’adresse IP, vous pouvez utiliser Nslookup pour rechercher le nom de domaine complet ou l’adresse IP d’un serveur SMTP. Voir la procédure ultérieurement dans cette rubrique.

Activer le client Telnet dans Windows Server 2008

L’appartenance au groupe d’administrateurs local Windows Server 2008 ou équivalent est le minimum requis pour effectuer cette procédure.

Dans Windows Server 2008, le client Telnet est désactivé par défaut. Pour l’activer, procédez comme suit :

  1. Ouvrez le Gestionnaire système.

  2. Cliquez sur Action, puis sélectionnez Ajouter des fonctionnalités.

  3. Sélectionnez Client Telnet, puis cliquez sur Suivant.

  4. Cliquez sur Installer, puis cliquez sur Fermer pour terminer l’installation du client Telnet.

Utiliser Nslookup pour rechercher le nom de domaine complet ou l’adresse IP d’un serveur SMTP

Pour vous connecter à un serveur SMTP de destination via Telnet sur le port 25, vous devez utiliser le nom de domaine complet (FQDN) ou l’adresse IP du serveur SMTP. Si le nom de domaine complet ou l’adresse IP est inconnu, la manière la plus simple d’obtenir ces informations est d’utiliser l’outil de ligne de commande Nslookup pour rechercher l’enregistrement MX du domaine de destination.

  1. À l’invite de commandes, tapez nslookup, puis appuyez sur ENTRÉE. Cette commande ouvre une session Nslookup.

  2. Tapez set type=mx, puis appuyez sur ENTRÉE.

  3. Tapez set timeout=20, puis appuyez sur ENTRÉE. Par défaut, le délai d’expiration de la requête DNS récursive pour les serveurs DNS Windows est 15 secondes.

  4. Tapez le nom du domaine pour lequel vous voulez rechercher l’enregistrement MX. Par exemple, pour rechercher l’enregistrement MX du domaine fabrikam.com, tapez fabrikam.com., puis appuyez sur ENTRÉE.

    RemarqueRemarque :
    Le point final ( . ) indique un nom de domaine complet. L’utilisation du point final empêche les suffixes DNS par défaut configurés sur votre réseau d’être ajoutés de façon involontaire au nom de domaine.

    Les données en sortie de la commande sont similaires à ce qui suit :

    fabrikam.com mx preference=10, mail exchanger = mail1.fabrikam.com
    fabrikam.com mx preference=20, mail exchanger = mail2.fabrikam.com
    mail1.fabrikam.com internet address = 192.168.1.10
    mail2 fabrikam.com internet address = 192.168.1.20
    

    Vous pouvez utiliser les noms d’hôte ou adresses IP associés aux enregistrements MX comme serveur SMTP de destination. Une valeur préférée inférieure indique un serveur SMTP préféré. Vous pouvez utiliser plusieurs enregistrements MX et des valeurs préférées différentes pour l’équilibrage de charge et la tolérance de pannes.

  5. Lorsque vous êtes prêt à fermer la session Nslookup, tapez exit, puis appuyez sur ENTRÉE.

RemarqueRemarque :
Les restrictions de pare-feu et de proxy Internet imposées sur le réseau interne de votre organisation peuvent vous empêcher d’utiliser l’outil Nslookup pour interroger les serveurs DNS publics sur Internet.
Les enregistrements MX ne sont pas strictement requis pour le flux de messages interne dans une organisation Exchange. Si vous devez rechercher le nom de domaine complet d’un serveur de transport Hub ou d’un serveur de transport Edge abonné dans votre organisation, vous pouvez utiliser la commande suivante dans l’environnement de ligne de commande Exchange Management Shell : Get-ExchangeServer | where {$_.isHubTransportServer -eq $true -or $_.isEdgeServer -eq $true} | Format-List Fqdn,ServerRole
Pour plus d’informations, consultez les rubriques Get-ExchangeServer et Traitement en pipeline.

Utiliser Telnet sur le port 25 pour tester la communication SMTP

Dans le cadre de cet exemple, la procédure suivante utilise les valeurs qui sont décrites dans la liste suivante :

  • Serveur SMTP de destination   mail1.fabrikam.com

  • Domaine source   contoso.com

  • Adresse de messagerie de l’expéditeur   chris@contoso.com

  • Adresse de messagerie du destinataire   kate@fabrikam.com

  • Objet du message   Test depuis Contoso

  • Corps du message   Ceci est un message de test

    RemarqueRemarque :
    Vous devez toujours utiliser une adresse de messagerie d’expéditeur valide de sorte que les messages de notification d’échec de remise générés par le serveur SMTP de destination sont remis à l’expéditeur du message.

Les commandes du client  Telnet ne tiennent pas compte de la casse. Les verbes de la commande SMTP sont écrits en majuscules par souci de clarté.

  1. À l’invite de commandes, tapez telnet, puis appuyez sur ENTRÉE. Cette commande ouvre la session Telnet.

  2. Tapez set localecho, puis appuyez sur ENTRÉE. Cette commande facultative permet d’afficher les caractères à mesure que vous les tapez. Cette configuration peut être requise pour certains serveurs SMTP.

  3. Tapez set logfile*<nom_fichier>*. Cette commande facultative permet d’ouvrir la session Telnet sur le fichier journal spécifié. Si vous ne spécifiez qu’un nom de fichier, l’emplacement du fichier journal correspond au répertoire de travail actuel. Si vous spécifiez un chemin d’accès et un nom de fichier, le chemin d’accès doit être local sur l’ordinateur. Le chemin d’accès et le nom de fichier spécifiés doivent être entrés au format Microsoft DOS 8.3. Le chemin d’accès spécifié doit déjà exister. Si vous spécifiez un fichier journal inexistant, il sera créé pour vous.

  4. Tapez open mail1.fabrikam.com 25, puis appuyez sur ENTRÉE.

    RemarqueRemarque :
    Vous ne pouvez pas utiliser la touche Retour arrière après vous être connecté au serveur SMTP de destination dans la session Telnet. En cas d’erreur lors de la saisie d’une commande SMTP, vous devez appuyer sur ENTRÉE puis taper la commande à nouveau. Les commandes SMTP inconnues ou les erreurs de syntaxe entraînent l’affichage d’un message d’erreur similaire à ce qui suit :
    500 5.3.3 Unrecognized command
    
  5. Tapez EHLO contoso.com, puis appuyez sur ENTRÉE.

  6. Tapez MAIL FROM:chris@contoso.com, puis appuyez sur ENTRÉE.

  7. Tapez RCPT TO:kate@fabrikam.com NOTIFY=success,failure, puis appuyez sur ENTRÉE. La commande facultative NOTIFY définit les messages de notification d’état de remise particuliers que le serveur SMTP de destination doit fournir à l’expéditeur. Les messages de notification d’état de remise sont définis dans RFC 1891. Dans ce cas, vous exigez un message de notification d’état de remise indiquant le succès ou l’échec de la remise du message.

  8. Tapez DATA, puis appuyez sur ENTRÉE. Vous recevez une réponse similaire à ce qui suit :

    354 Start mail input; end with <CLRF>.<CLRF>
    
  9. Tapez Subject: Test depuis Contoso, puis appuyez sur ENTRÉE.

  10. Appuyez sur ENTRÉE. RFC 2822 requiert une ligne vide entre le champ d’en-tête Subject: et le corps du message.

  11. Tapez Ceci est un message de test, puis appuyez sur ENTRÉE.

  12. Appuyez sur ENTRÉE, tapez un point ( . ), puis appuyez sur ENTRÉE. Vous recevez une réponse similaire à ce qui suit :

    250 2.6.0 <GUID> Queued mail for delivery
    
  13. Pour vous déconnecter du serveur SMTP de destination, tapez QUIT, puis appuyez sur ENTRÉE. Vous recevez une réponse similaire à ce qui suit :

    221 2.0.0 Service closing transmission channel
    
  14. Pour fermer la session Telnet, tapez quit, puis appuyez sur ENTRÉE.

Évaluer les résultats d’une Session Telnet

Cette section fournit des informations sur les réponses qui peuvent être générées pour les commandes utilisées dans l’exemple précédent :

  • Open mail1.fabrikam.com 25

  • EHLO contoso.com

  • MAIL FROM:chris@contoso.com

  • RCPT TO:kate@fabrikam.com NOTIFY=success,failure

    RemarqueRemarque :
    Les codes de réponse SMTP à 3 chiffres définis dans RFC 2821 sont les mêmes pour tous les serveurs de messagerie SMTP. Ces descriptions peuvent légèrement varier pour certains serveurs de messagerie SMTP. Dans l’exemple précédent, l’ordinateur de destination exécute Exchange Server 2010.

Open mail1.fabrikam.com 25

Réponse en cas de succès   220 mail1.fabrikam.com Microsoft ESMTP MAIL Service ready at <day-date-time>

Réponse en cas d’échec   Connecting to mail1.fabrikam.com...Could not open connection to the host, on port 25: Connect failed

Raisons possibles de l’échec

  • Le service SMTP de destination est indisponible.

  • Il existe des restrictions sur le pare-feu de destination.

  • Il existe des restrictions sur le pare-feu source.

  • Un nom de domaine complet incorrect ou une adresse IP incorrecte ont été spécifiés pour le serveur SMTP de destination.

  • Un numéro de port incorrect a été spécifié.

EHLO contoso.com

Réponse en cas de succès   250 mail1.fabrikam.com Hello [<sourceIPaddress>]

Réponse en cas d’échec   501 5.5.4 Invalid domain name

Raisons possibles de l’échec   Le nom de domaine comporte des caractères non valides. Il peut aussi y avoir des restrictions de connexion sur le serveur SMTP de destination.

RemarqueRemarque :
EHLO est le verbe ESMTP (Extended Simple Message Transfer Protocol) défini dans RFC 2821. Les serveurs ESMTP peuvent annoncer leurs capacités lors de la connexion initiale. Ces capacités incluent la taille de message acceptée maximale, ainsi que leurs méthodes d’authentification prises en charge. HELO est l’ancien verbe SMTP défini dans RFC 821. La plupart des serveurs de messagerie SMTP prennent en charge ESMTP et EHLO.

MAIL FROM:chris@contoso.com

Réponse en cas de succès   250 2.1.0 Sender OK

Réponse en cas d’échec   550 5.1.7 Invalid address

Raisons possibles de l’échec   L’adresse de messagerie de l’expéditeur comporte une erreur de syntaxe.

Réponse en cas d’échec   530 5.7.1 Client was not authenticated

Raisons possibles de l’échec   Le serveur de destination n’accepte pas les dépôts de message anonymes. Vous recevez cette erreur si vous tentez d’utiliser Telnet pour déposer un message directement sur un serveur de transport Hub.

RCPT TO:kate@fabrikam.com NOTIFY=success,failure

Réponse en cas de succès   250 2.1.5 Recipient OK

Réponse en cas d’échec   550 5.1.1 User unknown

Raisons possibles de l’échec   Le destinataire spécifié n’existe pas dans l’organisation.

 © 2010 Microsoft Corporation. Tous droits réservés.