Comment vérifier une connexion SMTP avec une session Telnet manuelle

Oiseau

7 févr. 2020

Email

1 min read

Comment vérifier une connexion SMTP avec une session Telnet manuelle

Points Clés

    • Manual telnet testing est un moyen rapide et peu technologique pour diagnostiquer les problèmes de connectivité et de configuration SMTP.

    • Utilisez-le pour vérifier si un serveur SMTP est accessible, correctement configuré et acceptant les connexions.

    • Le test peut révéler des ports bloqués, des restrictions de relais, des erreurs DNS ou des problèmes de compatibilité TLS.

    • Les commandes SMTP essentielles comprennent EHLO/HELO, MAIL FROM, RCPT TO, DATA et QUIT.

    • Le port 25 est standard pour le relais, tandis que 465 et 587 sont utilisés pour une soumission sécurisée.

    • Authentification codée en Base64 (AUTH LOGIN) est requise lorsque les serveurs exigent des identifiants de connexion.

    • Des outils comme Swaks ou des plateformes intégrées de test d'email peuvent automatiser et élargir les étapes de diagnostic du telnet.

Points forts des Q&A

  • Pourquoi utiliser telnet au lieu d'un outil dédié de test d'email ?

    Telnet vous donne une visibilité directe sur le dialogue SMTP brut. C'est inestimable pour le dépannage au niveau du protocole et pour confirmer les réponses du serveur sans couches tierces.

  • Quel est le moyen le plus rapide de savoir si mon port SMTP est bloqué ?

    Exécutez telnet mail.example.com 25. Si vous obtenez "Connexion refusée", votre FAI ou hébergeur bloque probablement le port.

  • Do I need to authenticate when testing with telnet ?

    Uniquement si le serveur de messagerie nécessite une authentification. Utilisez la commande AUTH LOGIN et envoyez votre nom d'utilisateur et mot de passe encodés en Base64.

  • Puis-je envoyer un email complet via telnet?

    Oui. Après DATA, ajoutez vos en-têtes et votre corps, terminez par un seul point (.) sur sa propre ligne, puis tapez QUIT.

  • Telnet est-il sécurisé pour les tests SMTP ?

    Non. Telnet transmet les données en texte brut. Utilisez-le uniquement pour des tests dans des environnements sûrs et contrôlés. Pour des connexions sécurisées, testez via TLS en utilisant des outils qui prennent en charge STARTTLS.

Dans le monde de l'email, il y a de nombreux aspects à tester, mais l'un des tests les plus basiques que vous pouvez effectuer est simplement de telnet dans un serveur SMTP donné. Ce contrôle SMTP est utile pour déterminer si les problèmes les plus basiques existent ou non.

Dans le monde de l'email, il existe de nombreux aspects à tester, mais l'un des tests les plus basiques que vous pouvez effectuer est simplement de telnet vers un serveur SMTP donné.  Ce test SMTP est utile pour déterminer si les problèmes les plus élémentaires existent ou non.

  • Le serveur est-il actif ?

  • Y a-t-il un pare-feu bloquant la communication ?

  • Le serveur de messagerie permet-il le relais d'un domaine/adresse email particulier ?

  • Quelles commandes SMTP le serveur de messagerie prend-il en charge ?

  • Le serveur répond-il avec le bon nom d'hôte ?

  • La connexion fonctionne-t-elle en dehors de tout logiciel tiers ou API ?

Toutes ces questions et plus encore peuvent être répondues avec un simple test telnet.

Avant de commencer, assurez-vous d'ouvrir notre article compagnon à ce post : Où sont envoyés les messages de rebond ? dans un nouvel onglet afin de pouvoir le lire une fois que vous aurez terminé avec ce blog.

À noter que les commandes utilisées dans les exemples suivants (ainsi que des commandes supplémentaires) sont couvertes dans la section 4.1 de RFC 2821.

Comment envoyer un email en utilisant Telnet ?

L'envoi d'email via telnet peut vous aider à identifier les problèmes de délivrabilité dans votre configuration actuelle.

Avant d'envoyer un email en utilisant telnet, confirmez que telnet est installé et activé sur votre ordinateur. La plupart des ordinateurs sont livrés avec un client telnet préinstallé. Pour les versions de Windows qui ne l'ont pas, on peut l'installer en ouvrant la section "Programmes et fonctionnalités" du panneau de configuration et en sélectionnant "Activer ou désactiver des fonctionnalités Windows". Une fois cette fenêtre ouverte, sélectionnez "telnet client" puis cliquez sur OK.

Une fois qu'un client telnet a été vérifié comme étant installé sur le serveur, ouvrez la fenêtre du terminal où vous allez entrer vos commandes d'invite. Sur Windows, utilisez les touches Windows + R, tapez "cmd" et appuyez sur Entrée. Pour les utilisateurs de Mac, vous trouverez l'icône du terminal en ouvrant Finder et en cherchant "Utilitaires" sur la page Applications, ou en entrant "terminal" dans la fonction de recherche du Launchpad.

Ensuite, nous devons trouver un serveur de messagerie pour nous connecter. Pour cela, nous aurons besoin de l'enregistrement DNS MX pour un domaine donné. Cela peut être trouvé avec la commande suivante (pour ces exemples, port25.com sera utilisé, mais tout domaine peut être substitué):

Windows :

nslookup -type=mx port25.com
Non-authoritative answer:
port25.com  MX preference = 100, mail exchanger = mail.port25.com

Linux :

nslookup -type=mx port25.com
Non-authoritative answer:
port25.com  mail exchanger = 100 mail.port25.com

SMTP utilise l'un des trois ports — 25, 465, ou 587, que Microsoft Outlook utilise couramment. Pour la configuration avancée et l'optimisation du serveur de messagerie, consultez notre guide sur les conseils de configuration de PowerMTA. Si votre relais SMTP utilise un port différent de 25 comme montré dans l'exemple, vous devrez utiliser le port spécifié par la réponse du serveur d'échange de courrier au nslookup. Vous pouvez également vérifier le port sur lequel repose votre SMTP en demandant à votre administrateur ou en vous connectant au serveur d'échange de courrier et en examinant les protocoles.

Ensuite, nous avons besoin du DNS PTR pour l'IP que nous allons utiliser.  D'abord, nous devons savoir quelle adresse IP l'internet nous voit avoir.  Pour le trouver, nous pouvons utiliser un site Web comme :

http://whatismyipaddress.com/

Avec l'adresse IP, exécutez la commande suivante, où A.B.C.D est l'adresse IP.

Windows :

nslookup -type=ptr A.B.C.D
Non-authoritative answer: 
D.C.B.A.in-addr.arpa name = server.example.com

Linux :

nslookup -type=ptr A.B.C.D
Non-authoritative answer: 
D.C.B.A.in-addr.arpa name = server.example.com

server.example.com n'est qu'un exemple, et vos résultats seront différents.

Maintenant que nous avons l'enregistrement MX pour port25.com et le PTR pour l'IP que nous allons utiliser, il est temps de se connecter au serveur SMTP. Pour ce faire, utilisez la commande suivante :

telnet mail.port25.com 25

Quelque chose de similaire à ce qui suit devrait maintenant s'afficher :

Trying 69.63.149.30...
Connected to mail.port25.com (69.63.149.30).
Escape character is '^]'.
220 mail.port25.com (PowerMTA(TM) v4.0) ESMTP service ready

Si vous recevez un message d'erreur comme "ne peut pas se connecter" à ce point, soit le numéro de port est correct, soit le serveur de messagerie rencontre des problèmes.

La première commande que nous devons envoyer au serveur de messagerie pour notre testeur d'email SMTP est la EHLO  ou HELO.  C'est une salutation de base qui commence la communication entre le client telnet et le serveur SMTP.  Est également transmis le DNS PTR pour l'adresse IP à partir de laquelle nous nous connectons, comme déterminé précédemment.

EHLO server.example.com

Quelque chose de similaire à ce qui suit devrait être renvoyé :

250-mail.port25.com says hello
250-STARTTLS
250-ENHANCEDSTATUSCODES
250-PIPELINING
250-CHUNKING
250-8BITMIME
250-XACK
250-XMRG
250-SIZE 54525952
250-VERP
250 DSN

Cela montre les commandes SMTP que le serveur SMTP accepte.  Tous les serveurs SMTP ne prennent pas en charge les mêmes ensembles de commandes. Par exemple, Yahoo ne montre que ce qui suit :

250-8BITMIME 
250-SIZE 41943040 
250 PIPELINING

Et AOL n'en montre qu'un avec :

250 DSN

La prochaine commande que nous devons émettre est la commande MAIL FROM.  Cela détermine l'adresse à laquelle les rebonds sont envoyés. Ce n'est pas la même chose que l'en-tête expéditeur, qui est l'adresse email montrée dans un client de messagerie.

MAIL FROM: <support@port25.com> 250 2.1.0 MAIL ok

Assurez-vous d'utiliser le nom de domaine correspondant au domaine de votre serveur de messagerie. Par exemple, si le domaine de votre email est anycompany.com, vous voudrez utiliser vous@anycompany.com au lieu d'un email externe comme vous@free-mail-provider.com. Les variations dans les noms de domaine peuvent provoquer l'apparition d'un message d'erreur.

Maintenant que la commande MAIL FROM  a été envoyée, nous pouvons envoyer la commande RCPT TO . Cette commande indique au serveur de messagerie SMTP à qui le message doit être envoyé. Cela peut être le même ou différent de l'en-tête destinataire, qui est l'adresse email affichée dans le client de messagerie.

RCPT TO: <support@port25.com> 250 2.1.5 <support@port25.com> ok

Vérifiez l'adresse de votre destinataire avant d'envoyer la commande RCPT TO — un message d'erreur affiché ici peut indiquer une faute de frappe ou un destinataire d'email bloqué.

La dernière commande à exécuter avant de commencer le corps du message est la commande DATA.  Cette commande informe le serveur de messagerie SMTP que tout ce qui suit est le corps du message (qui contient également les en-têtes).

DATA 354 envoyer message

Il est important de noter que si un serveur de messagerie prend en charge PIPELINING, comme le fait mail.port25.com, le serveur de messagerie SMTP peut attendre que la commande DATA soit émise avant de répondre à toute autre commande après le EHLO/HELO.  Dans ce cas, entrez les commandes MAIL FROM, RCPT TO, et DATA  avant d'attendre une réponse.

Maintenant que la commande DATA a été envoyée, nous pouvons commencer à envoyer le contenu du message.  Cela commence par les divers en-têtes. Un message doit contenir au moins un en-tête destinataire, expéditeur, objet et date. Les en-têtes saisis ici seront affichés à l'utilisateur dans leur client de messagerie.

From: "John Smith" <jsmith@port25.com>
To: "Jane Doe" <jdoe@port25.com>
Subject: test message sent from manual telnet session
Date: Wed, 11 May 2011 16:19:57 -0400

Avec les en-têtes définis, nous ajoutons maintenant une ligne vide avec un retour chariot/saut de ligne (appuyez juste sur entrée deux fois) et puis nous commençons le corps réel du message.

Bonjour Monde, Ceci est un message test envoyé depuis une session telnet manuelle. Bien à vous, administrateur SMTP

Avec le message terminé, nous devons dire au serveur SMTP que nous avons terminé avec le message et que nous voulons que le serveur de messagerie l'accepte. Cela se fait avec un point sur une ligne par elle-même. Si, lors de la rédaction d'un message, un point sur une ligne par elle-même est nécessaire, vous devez mettre 2 points, le premier échappant le second.

.   250 2.6.0 message reçu

Si vous recevez un message d'erreur au lieu de la notification "reçu", consignez les détails pertinents et contactez votre fournisseur d'email pour plus d'assistance. Les problèmes de connexion peuvent également être liés aux protocoles de sécurité - assurez-vous que vous utilisez TLS 1.2 ou supérieur pour des connexions sécurisées.

Enfin, la commande QUIT  est envoyée pour fermer la connexion :

QUIT 221 2.0.0 mail.port25.com dit au revoir

Avec cela, le serveur de messagerie a maintenant accepté le message pour livraison, votre test d'envoi d'email telnet est terminé, et il devrait se trouver dans la boîte de réception de l'adresse RCPT TO !!!

Voici toutes les commandes sans interruption :

telnet mail.port25.com 25
Trying 69.63.149.30...
Connected to mail.port25.com (69.63.149.30).
Escape character is '^]'.
  
220 mail.port25.com (PowerMTA(TM) v4.0) ESMTP service ready

EHLO server.example.com
250-mail.port25.com says hello
250-STARTTLS
250-ENHANCEDSTATUSCODES
250-PIPELINING
250-CHUNKING
250-8BITMIME
250-XACK
250-XMRG
250-SIZE 54525952
250-VERP
250 DSN

MAIL FROM:<support@port25.com>
250 2.1.0 MAIL ok

RCPT TO:<support@port25.com>
250 2.1.5 <support@port25.com> ok

DATA
354 send message

From: "John Smith" <jsmith@port25.com>
To: "Jane Doe" <jdoe@port25.com>
Subject: test message sent from manual telnet session
Date: Wed, 11 May 2011 16:19:57 -0400

Hello World,
This is a test message sent from a manual telnet session.
Yours truly,
SMTP administrator
.

250 2.6.0 message received

QUIT
221 2.0.0 mail.port25.com says goodbye

L'envoi d'un email en utilisant telnet vous permet de tester rapidement les capacités de connexion à moindre coût qu'un équipement ou un logiciel de diagnostic robuste. Pour des outils de test SMTP plus avancés, envisagez d'utiliser Swaks avec SparkPost pour un test de courrier électronique complet.

Comment tester SMTP en utilisant l'authentification Telnet ?

Maintenant que vous savez comment vérifier une connexion SMTP avec telnet, nous allons discuter des procédures d'authentification. L'authentification SMTP aide à empêcher de grandes quantités de spam d'atteindre les boîtes de réception des lecteurs, bien que tous les serveurs d'échange de courrier ne l'exigent pas. Comprendre l'authentification est également crucial lors de l'analyse des en-têtes de courriel pour le dépannage de la délivrabilité.

La principale différence dans les protocoles d'authentification modernes est la présence d'un encodage base64. Base64 convertit les données binaires en format texte ASCII requis par les serveurs de messagerie pour une transmission de données réussie. C'est une manière de représenter vos identifiants de connexion — une combinaison de texte — en format numérique que l'ordinateur peut comprendre.

Vous pouvez générer votre base64 à l'aide de logiciels ou d'outils en ligne gratuits. Une fois que vous avez communiqué cette information au serveur de messagerie, celui-ci compare ces données avec ses enregistrements pour déterminer l'authentification.

Pour tester l'authentification SMTP via telnet, complétez les étapes suivantes :

  • Ouvrez le terminal et connectez-vous au serveur de messagerie en utilisant le nom du serveur telnet et la commande d'accès — mail.port25.com dans l'exemple ci-dessus.

  • Saluer le serveur avec EHLO ou HELO, entrez AUTH LOGIN et attendez la réponse de l'ordinateur. 

  • Entrez le nom d'utilisateur encodé en base64 et laissez le serveur répondre.

  • Entrez le mot de passe encodé en base64, et vous devriez recevoir une réponse telle que « authentification réussie ».

  • Poursuivez avec MAIL FROM, RCPT TO, DATA et QUIT pour envoyer votre email authentifié.

Maintenant que vous savez comment vérifier une connexion SMTP avec telnet, nous allons discuter des procédures d'authentification. L'authentification SMTP aide à empêcher de grandes quantités de spam d'atteindre les boîtes de réception des lecteurs, bien que tous les serveurs d'échange de courrier ne l'exigent pas. Comprendre l'authentification est également crucial lors de l'analyse des en-têtes de courriel pour le dépannage de la délivrabilité.

La principale différence dans les protocoles d'authentification modernes est la présence d'un encodage base64. Base64 convertit les données binaires en format texte ASCII requis par les serveurs de messagerie pour une transmission de données réussie. C'est une manière de représenter vos identifiants de connexion — une combinaison de texte — en format numérique que l'ordinateur peut comprendre.

Vous pouvez générer votre base64 à l'aide de logiciels ou d'outils en ligne gratuits. Une fois que vous avez communiqué cette information au serveur de messagerie, celui-ci compare ces données avec ses enregistrements pour déterminer l'authentification.

Pour tester l'authentification SMTP via telnet, complétez les étapes suivantes :

  • Ouvrez le terminal et connectez-vous au serveur de messagerie en utilisant le nom du serveur telnet et la commande d'accès — mail.port25.com dans l'exemple ci-dessus.

  • Saluer le serveur avec EHLO ou HELO, entrez AUTH LOGIN et attendez la réponse de l'ordinateur. 

  • Entrez le nom d'utilisateur encodé en base64 et laissez le serveur répondre.

  • Entrez le mot de passe encodé en base64, et vous devriez recevoir une réponse telle que « authentification réussie ».

  • Poursuivez avec MAIL FROM, RCPT TO, DATA et QUIT pour envoyer votre email authentifié.

Maintenant que vous savez comment vérifier une connexion SMTP avec telnet, nous allons discuter des procédures d'authentification. L'authentification SMTP aide à empêcher de grandes quantités de spam d'atteindre les boîtes de réception des lecteurs, bien que tous les serveurs d'échange de courrier ne l'exigent pas. Comprendre l'authentification est également crucial lors de l'analyse des en-têtes de courriel pour le dépannage de la délivrabilité.

La principale différence dans les protocoles d'authentification modernes est la présence d'un encodage base64. Base64 convertit les données binaires en format texte ASCII requis par les serveurs de messagerie pour une transmission de données réussie. C'est une manière de représenter vos identifiants de connexion — une combinaison de texte — en format numérique que l'ordinateur peut comprendre.

Vous pouvez générer votre base64 à l'aide de logiciels ou d'outils en ligne gratuits. Une fois que vous avez communiqué cette information au serveur de messagerie, celui-ci compare ces données avec ses enregistrements pour déterminer l'authentification.

Pour tester l'authentification SMTP via telnet, complétez les étapes suivantes :

  • Ouvrez le terminal et connectez-vous au serveur de messagerie en utilisant le nom du serveur telnet et la commande d'accès — mail.port25.com dans l'exemple ci-dessus.

  • Saluer le serveur avec EHLO ou HELO, entrez AUTH LOGIN et attendez la réponse de l'ordinateur. 

  • Entrez le nom d'utilisateur encodé en base64 et laissez le serveur répondre.

  • Entrez le mot de passe encodé en base64, et vous devriez recevoir une réponse telle que « authentification réussie ».

  • Poursuivez avec MAIL FROM, RCPT TO, DATA et QUIT pour envoyer votre email authentifié.

Autres news

Lire la suite de cette catégorie

A person is standing at a desk while typing on a laptop.

La plateforme native AI complète qui évolue avec votre business.

A person is standing at a desk while typing on a laptop.

La plateforme native AI complète qui évolue avec votre business.