Utiliser Telnet pour tester la communication SMTP sur les serveurs Exchange

[Cette rubrique est une documentation préliminaire et peut être modifiée dans les versions ultérieures. Des rubriques vides sont incluses comme espaces réservés. N’hésitez pas à nous transmettre vos commentaires. Envoyez-nous un e-mail à l’adresse ExchangeHelpFeedback@microsoft.com.]  

S’applique à :Exchange Server 2016

Découvrez comment utiliser Telnet pour tester le flux de messagerie et la connectivité SMTP sur les serveurs Exchange.

Telnet vous permet de tester la communication SMTP (Simple Mail Transfer Protocol) entre deux serveurs de messagerie. SMTP est le protocole utilisé pour envoyer des messages électroniques depuis un serveur de messagerie vers un autre. Telnet peut s’avérer utile si vous ne parvenez pas à envoyer ou à recevoir des messages, car vous pouvez envoyer manuellement des commandes SMTP à un serveur de messagerie. En retour, le serveur enverra ses réponses via une connexion classique. Ces résultats peuvent parfois vous aider à comprendre pourquoi vous ne pouvez pas envoyer ou recevoir des messages.

Vous pouvez utiliser Telnet pour :

  • tester le flux de messagerie entre Internet et votre organisation Exchange ;

  • tester le flux de messagerie entre votre serveur Exchange et un autre serveur de messagerie sur Internet.

tipConseil :
Saviez-vous qu’au lieu d’utiliser Telnet pour tester la connectivité SMTP, vous pouviez utiliser l’Analyseur de connectivité à distance Microsoft ? Avec l’Analyseur de connectivité à distance, vous pouvez choisir le test de connectivité à effectuer, dans ce cas Messagerie électronique SMTP entrante. Ensuite, suivez les instructions affichées pour obtenir toutes les informations dont vous aurez besoin pour entrer, exécuter le test et obtenir des résultats. Essayez-le !

  • Durée d'exécution estimée : 15 minutes

  • Les autorisations Exchange ne s’appliquent pas aux procédures de cette rubrique. Ces procédures sont exécutées dans le système d’exploitation du serveur Exchange ou sur un ordinateur client.

  • Cette rubrique vous explique comment utiliser le client Telnet, inclus avec Windows. Les clients Telnet tiers peuvent exiger l’utilisation d’une syntaxe différente de celle présentée dans cette rubrique.

  • Les étapes décrites dans cette rubrique vous montrent comment se connecter à un serveur connecté à Internet qui autorise les connexions anonymes à l’aide du port TCP 25. Si vous cherchez à vous connecter à ce serveur depuis Internet, vous devez vérifier que votre serveur Exchange est accessible depuis Internet sur le port TCP 25. De même, si vous tentez d’accéder à un serveur sur Internet depuis votre serveur Exchange, vous devez vérifier que votre serveur Exchange peut ouvrir une connexion à Internet sur le port TCP 25.

  • Vous remarquerez peut-être que certains connecteurs de réception utilisent le port TCP 2525. Ce sont des connecteurs de réception internes qui ne permettent pas d’accepter des connexions SMTP anonymes.

  • Si vous testez une connexion sur un serveur de messagerie distant, vous devez exécuter les étapes décrites dans cette rubrique sur votre serveur Exchange. Bien souvent, les serveurs de messagerie distants sont configurés pour vérifier que l’adresse IP d’où provient la connexion SMTP correspond au domaine de l’adresse e-mail de l’expéditeur.

  • Pour des informations sur les raccourcis clavier applicables aux procédures de cette rubrique, voir Raccourcis clavier dans Exchange 2013Raccourcis clavier dans le Centre d’administration Exchange.

tipConseil :
Vous rencontrez des difficultés ? Demandez de l’aide en participant aux forums Exchange. Visitez le forum à l’adresse : Exchange Server, Exchange Online ou Exchange Online Protection.

Dans la plupart des versions de Windows, vous devez installer le client Telnet pour pouvoir l’utiliser. Pour cela, consultez la rubrique relative à l’installation du client Telnet.

Pour vous connecter à un serveur SMTP sur le port 25 via Telnet, vous devez utiliser le nom de domaine complet (FQDN) (par exemple, mail.contoso.com) ou l’adresse IP du serveur SMTP. Si vous ne connaissez pas le nom de domaine complet ou l’adresse IP, vous pouvez utiliser l’outil de ligne de commande Nslookup pour rechercher l’enregistrement MX du domaine de destination.

noteRemarque :
Les stratégies de réseau peuvent vous empêcher d’utiliser l’outil Nslookup pour interroger les serveurs DNS publics sur Internet. Pour y remédier, vous pouvez utiliser un des sites web de recherche des enregistrements MX ou de recherche DNS disponibles gratuitement sur Internet.
  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 le nom du domaine pour lequel rechercher l’enregistrement MX. Par exemple, pour rechercher l’enregistrement MX du domaine fabrikam.com, tapez fabrikam.com., puis appuyez sur Entrée.

    noteRemarque :
    Lorsque vous utilisez un point final (.), vous empêchez qu’un suffixe DNS par défaut soit ajouté involontairement au nom de domaine.

    Le résultat de la commande ressemble à ceci :

    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 (préférence = 10 vs 20) indique un serveur SMTP préféré. Plusieurs enregistrements MX et différentes valeurs préférées sont utilisés pour l’équilibrage de charge et la tolérance de panne.

  4. Quand vous êtes prêt à fermer la session Nslookup, tapez exit, puis appuyez sur Entrée.

Dans cet exemple, nous allons utiliser les valeurs suivantes. Lorsque vous exécutez les commandes sur le serveur, remplacez ces valeurs par celles du serveur SMTP, domaine, etc., de votre organisation.

  • 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

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

  • Vous ne pouvez pas utiliser la touche Retour arrière dans la session Telnet après vous être connecté au serveur SMTP de destination. 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 semblable à celui-ci :

    500 5.3.3 Unrecognized command

  1. Ouvrez une fenêtre d’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 vous permet d’afficher les caractères à mesure que vous les tapez. Cette configuration peut être requise pour certains serveurs SMTP.

  3. Tapez set logfile<filename>, puis appuyez sur Entrée.

    Cette commande facultative active la journalisation et spécifie le fichier journal pour la session Telnet. Si vous ne spécifiez qu’un nom de fichier, le fichier journal se trouve dans le dossier actif. Si vous spécifiez un chemin d’accès et un nom de fichier, le chemin d’accès doit se trouver sur l’ordinateur local, et vous devrez peut-être entrer le chemin d’accès et le nom au format Windows DOS 8.3 (nom abrégé sans espace). Le chemin d’accès doit déjà exister, contrairement au fichier journal qui est créé automatiquement.

  4. Tapez OPEN mail1.fabrikam.com 25, puis appuyez sur Entrée.

  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 NOTIFY facultative spécifie la notification d’état de remise spécifique des messages (également appelée notification de non-remise ou notification d’échec de remise) que le serveur SMTP doit fournir. Dans cet exemple, vous demandez un message DSN indiquant le succès ou l’échec de la remise du message.

  8. Tapez DATA, puis appuyez sur Entrée.

  9. Tapez Subject: Test from Contoso, puis appuyez sur Entrée.

  10. Appuyez de nouveau sur Entrée.

    Une ligne vide doit être placée entre le champ Subject: et le corps du message.

  11. Tapez Ceci est un message de test, puis appuyez sur Entrée.

  12. Tapez un point (.), puis appuyez sur Entrée.

  13. Pour vous déconnecter du serveur SMTP, tapez QUIT, puis appuyez sur Entrée.

  14. Pour fermer la session Telnet, tapez quit, puis appuyez sur Entrée.

Voici à quoi ressemble une session réussie après avoir utilisé la procédure ci-dessus :

C:\Windows\System32> telnet

Microsoft Telnet> set localecho
Microsoft Telnet> set logfile c:\TelnetTest.txt
Microsoft Telnet> OPEN mail1.fabrikam.com 25

220 mail1.fabrikam.com Microsoft ESMTP MAIL Service ready at Fri, 5 Aug 2016 16:24:41 -0700
EHLO contoso.com
250-mail1.fabrikam.com Hello [172.16.0.5]
250-SIZE 37748736
250-PIPELINING
250-DSN
250-ENHANCEDSTATUSCODES
250-STARTTLS
250-X-ANONYMOUSTLS
250-AUTH NTLM
250-X-EXPS GSSAPI NTLM
250-8BITMIME
250-BINARYMIME
250-CHUNKING
250 XRDST
MAIL FROM: chris@contoso.com
250 2.1.0 Sender OK
RCPT TO: kate@fabrikam.com NOTIFY=success,failure
250 2.1.5 Recipient OK
DATA
354 Start mail input; end with <CRLF>.<CRLF>
Subject: test
This is a test message.
.
250 2.6.0 <c89b4fcc-3ad1-4758-a1ab-1e820065d622@mail1.fabrikam.com> [InternalId=5111011082268, Hostname=mail1.fabrikam.com] Queued mail for delivery
QUIT
221 2.0.0 Service closing transmission channel

Cette section fournit des informations sur les réponses de réussite et d’échec générées pour les commandes utilisées dans l’exemple précédent.

noteRemarque :
Les codes de réponse SMTP à trois chiffres définis dans RFC 5321 sont les mêmes pour tous les serveurs de messagerie SMTP, mais le texte des descriptions des réponses peut être légèrement différent.

Les serveurs SMTP répondent à des commandes constituées de codes de réponse numériques au format x.y.z, où :

  • X indique si la commande était valide, non valide ou incomplète.

  • Y indique le type de la réponse qui a été envoyée.

  • Z fournit des informations supplémentaires sur la commande

Lorsque le serveur qui a ouvert la connexion reçoit une réponse, il peut savoir si le serveur distant a accepté la commande et s’il est prêt à recevoir la commande suivante, ou si une erreur s’est produite.

Il est particulièrement important de comprendre le premier chiffre (X) car il indique la réussite ou l’échec de la commande envoyée. Voici ses valeurs possibles et leur signification.

 

Code de réponse Signification

2.y.z

La commande envoyée a été acceptée par le serveur distant. Le serveur distant est prêt à recevoir la commande suivante.

3.y.z

La commande a été acceptée, mais le serveur distant a besoin d’informations supplémentaires avant la fin de l’opération. Le serveur d’envoi doit envoyer une nouvelle commande avec les informations nécessaires.

4.y.z

La commande n’a pas été acceptée par le serveur distant pour une raison qui peut être temporaire. Le serveur d’envoi doit essayer de se reconnecter ultérieurement pour vérifier si le serveur distant peut accepter la commande. Le serveur d’envoi essaiera de se reconnecter jusqu’à ce qu’une connexion soit établie (indiquée par un code 2.y.z) ou échoue définitivement (indiqué par un code 5.y.z).

Une erreur temporaire peut être due à un espace de stockage limité sur le serveur distant. Lorsque le serveur distant dispose de plus d’espace, il est en mesure d’accepter la commande.

5.y.z

La commande n’a pas été acceptée par le serveur distant pour une raison qui n’est pas récupérable. Le serveur d’envoi n’essaie pas de se reconnecter et envoie une notification d’échec de remise à l’expéditeur.

Une erreur irrécupérable peut être due à un message envoyé à une adresse e-mail qui n’existe pas.

Le tableau ci-dessus reprend les informations fournies dans la section 4.2.1 relative au RFC 5321 (protocole SMTP). Vous trouverez des informations complémentaires, ainsi que les descriptions des chiffres Y et Z des codes de réponse SMTP, dans cette section et dans les sections 4.2.2 et 4.2.3.

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.

  • Restrictions sur le pare-feu de destination.

  • Restrictions sur le pare-feu source.

  • Nom de domaine complet ou adresse IP incorrects pour le serveur SMTP de destination.

  • Numéro de port incorrect.

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

  • Caractères non valides dans le nom de domaine.

  • Restrictions de connexion sur le serveur SMTP de destination.

noteRemarque :
EHLO est le verbe ESMTP (Extended Simple Message Transfer Protocol) défini dans RFC 5321. Les serveurs ESMTP peuvent annoncer leurs capacités lors de la connexion initiale. Ces capacités incluent la taille de message maximale acceptée et les 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. Si le serveur non-Exchange auquel vous essayez de vous connecter ne prend pas en charge EHLO, utilisez la commande HELO.

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 e-mail 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 messages anonymes envoyés. Vous recevez cette erreur si vous essayez d’utiliser Telnet pour envoyer un message directement à un serveur de boîtes aux lettres dont le connecteur de réception n’est pas configuré pour accepter les connexions anonymes.

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.

 
Afficher: