
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'e-mails via telnet peut vous aider à identifier les problèmes de délivrabilité dans votre configuration actuelle.
Avant d'envoyer un e-mail en utilisant telnet, confirmez que telnet est à la fois installé et activé sur votre ordinateur. La plupart des ordinateurs sont équipés d'un client telnet préinstallé. Pour les versions de Windows qui ne le sont pas, on peut installer telnet en ouvrant la section « Programmes et fonctionnalités » du panneau de configuration et en sélectionnant « Activer ou désactiver les fonctionnalités Windows ». Avec cette fenêtre ouverte, sélectionnez « client telnet » puis cliquez sur OK.
Une fois qu'un client telnet a été vérifié comme installé sur le serveur, ouvrez la fenêtre de terminal où vous allez entrer vos commandes d'invite. Sur Windows, utilisez 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 recherchant « Utilitaires » sur la page Applications, ou en saisissant « terminal » dans la fonction de recherche de Launchpad.
Ensuite, nous devons trouver un serveur de messagerie pour nous connecter. Pour ce faire, nous aurons besoin de l'enregistrement DNS MX d'un domaine donné. Cela peut être trouvé avec la commande suivante (pour ces exemples, port25.com sera utilisé, mais n'importe quel domaine peut être substitué) :
Windows :
nslookup -type=mx port25.com
Réponse non autoritaire :
port25.com préférence MX = 100, échangeur de courrier = mail.port25.com
Linux :
nslookup -type=mx port25.com
Réponse non autoritaire :
port25.com échangeur de courrier = 100 mail.port25.com.
SMTP utilise l'un des trois ports — 25, 465 ou 587, que Microsoft Outlook utilise couramment. Pour la configuration et l'optimisation avancées du serveur de messagerie, consultez notre guide sur les conseils de configuration de PowerMTA. Si votre relais SMTP utilise un port différent du 25 comme indiqué dans l'exemple, vous utiliserez le port spécifié par la réponse du serveur d'échange de courrier à la recherche DNS. Vous pouvez également vérifier le port sur lequel votre SMTP repose en demandant à votre administrateur ou en vous connectant au serveur d'échange de courrier et en vérifiant 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 comme ayant. Pour cela, nous pouvons utiliser un site web comme :
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
Réponse non autoritaire :
D.C.B.A.in-addr.arpa nom = server.example.com
Linux :
nslookup -type=ptr A.B.C.D
Réponse non autoritaire :
D.C.B.A.in-addr.arpa nom = server.example.com
server.example.com est juste 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 :
Try 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 stade, soit le numéro de port est incorrect, soit le serveur de messagerie est confronté à des problèmes.
La première commande que nous devons émettre au serveur de messagerie pour notre testeur d'email SMTP est le EHLO ou HELO. Ceci est un salut de base qui démarre la communication entre le client telnet et le serveur SMTP. Est également passé 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 dit bonjour 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 les éléments suivants :
250-8BITMIME 250-SIZE 41943040 250 PIPELINING
Et aol montre seulement:
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 from, qui est l'adresse e-mail affichée dans un client e-mail.
MAIL FROM: <support@port25.com> 250 2.1.0 MAIL ok
Assurez-vous d'utiliser le nom de domaine correspondant au domaine du serveur de messagerie. Par exemple, si le domaine de votre e-mail est anycompany.com, vous voudrez utiliser vous@anycompany.com au lieu d'un e-mail extérieur comme vous@free-mail-provider.com. Les variations de noms de domaine peuvent entraîner 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 identique ou différent de l'en-tête to, qui est l'adresse e-mail affichée dans le client e-mail.
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 erreur d'orthographe ou un destinataire e-mail bloqué.
La dernière commande à exécuter avant de commencer le corps du message est la commande DATA. Cette commande indique au serveur de messagerie SMTP que tout le reste qui est sur le point d'être envoyé est le corps du message (qui contient également les en-têtes).
DATA 354 send 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 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 avec les divers en-têtes. Au minimum, un message doit contenir un to, from, subject, et date header. Les en-têtes entrés ici seront affichés à l'utilisateur dans son client e-mail.
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 vierge avec un retour chariot/saut de ligne (appuyez simplement deux fois sur entrer) puis nous commençons le corps réel du message.
Hello World, Ce message de test a été envoyé depuis une session telnet manuelle. Cordialement, administrateur SMTP
Une fois le message terminé, nous devons indiquer au serveur SMTP que nous avons terminé avec le message et que nous souhaitons que le serveur de messagerie SMTP 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 lui-même est nécessaire, vous devez mettre 2 points, le premier échappant le deuxième.
. 250 2.6.0 message reçu
Si vous obtenez un message d'erreur au lieu de la notification « reçu », enregistrez les détails pertinents et contactez votre fournisseur de messagerie pour plus d'assistance. Les problèmes de connexion peuvent également être liés aux protocoles de sécurité - assurez-vous d' utiliser 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 par telnet est terminé et il devrait être dans la boîte de réception de l'adresse RCPT TO!!!
Voici toutes les commandes sans interruption :
telnet mail.port25.com 25 Try 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 dit bonjour 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, Ce message de test a été envoyé depuis une session telnet manuelle. Cordialement, administrateur SMTP . 250 2.6.0 message reçu QUIT 221 2.0.0 mail.port25.com dit au revoir
L'envoi d'un e-mail en utilisant telnet vous permet de tester rapidement les capacités de connexion et à moindre coût que les équipements de diagnostic robustes ou le logiciel. Pour des outils de test SMTP plus avancés, envisagez d'utiliser Swaks avec SparkPost pour des tests d'e-mail complets.