Site icon Mailtrap

Comment Envoyer des Emails avec Telnet

This is a cover image for an article that explains How to Send Emails with Telnet

Telnet ou Teletype Network Protocol est un protocole d’application client/serveur. Il permet aux utilisateurs de se connecter directement aux serveurs de messagerie depuis la ligne de commande de leur ordinateur.

L’objectif principal de Telnet est d’établir une connexion standardisée entre les appareils et processus orientés terminal (RFC 854).

Il pourrait également être utilisé pour envoyer des emails et, dans ce processus, tester la connexion SMTP (Simple Mail Transfer Protocol). Il existe toutefois des limitations spécifiques vous empêchent d’envoyer réellement des emails en production, et nous les aborderons en détail.

Passons maintenant à l’explication de la manière d’envoyer des emails en utilisant Telnet sur les systèmes d’exploitation Windows et Linux.

Prêt à envoyer vos emails ?
Essayez Mailtrap Gratuitement

Envoyer des emails via Telnet sous Windows

Prérequis

Installation du client Telnet

La plupart des versions des systèmes d’exploitation Windows n’ont pas Telnet activé par défaut. Donc, pour commencer, nous devons d’abord installer le client Telnet. Le processus d’installation diffère légèrement en fonction de la version de Windows que vous utilisez. Généralement, nous avons trois options principales :

Installation via la ligne de commande

Appuyez sur la touche Windows ou cliquez sur le bouton Démarrer. Recherchez le champ Recherche, tapez cmd, et appuyez sur Entrée. Faites un clic droit sur Invite de commandes et appuyez sur Exécuter en tant qu’administrateur. De cette façon, vous aurez le droit de terminer l’installation. L’étape suivante consiste à entrer une commande spécifique dans la ligne de commande.

Pour Windows 7, Windows Server 2008 R2, Windows Server 2008, ou Windows Vista, tapez la commande suivante et appuyez sur Entrée :

pkgmgr /iu:"TelnetClient" 

Pour Windows 8 et supérieur, tapez cette commande et appuyez sur Entrée :

dism /online /Enable-Feature /FeatureName:TelnetClient

Attendez que l’installation soit terminée. Vous devriez recevoir un message de confirmation sur les versions plus récentes du SE Windows.

Installation via PowerShell

Une autre option est d’utiliser PowerShell pour installer le client Telnet. Cependant, cela ne s’applique qu’à Windows 8.1, Windows 10, Windows Server 2012 R2, ou ultérieur.

Ouvrez la fenêtre d’administration PowerShell, tapez la commande suivante, et appuyez sur Entrée.

Enable-WindowsOptionalFeature -Online -FeatureName TelnetClient

Attendez que l’installation soit terminée.

Installation via le Panneau de Configuration

Enfin, vous pouvez installer le client Telnet depuis le Panneau de configuration. Pour ce faire, trouvez Programmes (ou Programmes et fonctionnalités) et ouvrez-le. Cherchez Activer ou désactiver des fonctionnalités Windows et cliquez dessus. Vous verrez une boîte Fonctionnalités Windows. Trouvez Client Telnet et cochez la case. Appuyez ensuite sur OK. Attendez que l’installation soit terminée et redémarrez l’ordinateur pour appliquer les modifications.

Pour d’autres options d’installation, référez-vous à la documentation Microsoft.

Envoi des emails

Le processus d’envoi d’email suit la logique et l’ordre de la transmission SMTP : prise de contact (handshake), transmission, et fin de la session. Il utilise les commandes SMTP et se connecte au serveur via un port TCP. Consultez cet article de blog pour trouver plus d’informations sur le fonctionnement de SMTP.

Note : Telnet n’est pas un moyen sécurisé d’envoyer un email. Il établit une connexion non cryptée, car il ne prend pas en charge SSL ou TLS. Cela signifie que toute personne ayant accès à votre réseau peut intercepter la transmission et accéder au contenu de votre message.

Vous ne pouvez pas non plus vous connecter aux serveurs SMTP avec authentification, car la plupart d’entre eux nécessitent un cryptage TLS ou SSL avant d’autoriser les méthodes d’authentification LOGIN et PLAIN (l’authentification sans TLS n’est autorisée que sur les serveurs SMTP de test). Vous devriez utiliser OpenSSL au lieu de Telnet pour vous connecter aux serveurs SMTP avec cryptage. Nous parlerons d’OpenSSL ci-dessous.

En raison de tout cela, nous allons en fait couvrir l’« envoi d’email » vers la sandbox Mailtrap, qui est un faux SMTP utilisé à des fins de test.

Pour démarrer une session SMTP, vous aurez besoin du nom de domaine complet ou de l’adresse IP du serveur SMTP auquel vous essayez de vous connecter. Comme dit, nous utiliserons l’Email Testing de Mailtrap, et entrerons : sandbox.smtp.mailtrap.io.

Vous devrez également identifier le port, qui peut être 25, 587, 465, ou 2525. Le numéro de port dépend des configurations du serveur SMTP auquel vous essayez de vous connecter. La plupart des serveurs SMTP bloquent les transmissions via le port 25. Les ports 587 et 2525 doivent être utilisés avec le cryptage TLS.

Tapez la commande :

telnet sandbox.smtp.mailtrap.io 2525

Note : L’Email Sandbox de Mailtrap n’acceptera pas les connexions Telnet via le port 25. Vous devrez utiliser le port 2525.

Vous verrez la réponse commençant par le code 220 si la connexion est réussie. Par exemple,

220 sandbox.smtp.mailtrap.io ESMTP server ready

L’étape suivante consiste à vous identifier auprès de l’hôte SMTP.

EHLO example.com or HELO example.com 

Note : La commande HELO initiera une connexion SMTP sans extensions de service. Par conséquent, les commandes ESMTP correspondantes (telles que STARTTLS, par exemple) ne seront pas prises en charge.

Toutes les extensions SMTP prises en charge seront listées dans la réponse. Chaque ligne commence par 250, indiquant une connexion réussie.

250-sandbox.smtp.mailtrap.io
250-PIPELINING
250-SIZE 10485760
250-ETRN
250-STARTTLS
250-AUTH LOGIN PLAIN
250-ENHANCEDSTATUSCODES
250-8BITMIME
250 DSN

Ensuite, vous pouvez procéder au transfert des champs d’email nécessaires conformément à la spécification SMTP. D’abord, tapez MAIL FROM, puis RCPT TO, et ensuite tapez DATA.

MAIL FROM: <expediteur@exemple.com>
250 2.1.0 Sender OK
RCPT TO: <destinataire@exemple.com> 
250 2.1.5 Recipient OK
DATA
354 Start mail input; end with <CRLF>.<CRLF>
From: expediteur@exemple.com
To: destinataire@exemple.com
Subject: Email Telnet

Ceci est mon premier message de test envoyé en utilisant le client Telnet sous Windows
.
250 2.0.0 Ok: queued as ABC123456789

Pour terminer la session, vous devez taper la commande QUIT. Le serveur répondra avec 221 2.0.0 Service closing transmission channel, et la connexion sera terminée.

Un exemple complet ressemblera à quelque chose comme ceci :

telnet sandbox.smtp.mailtrap.io 2525
220 sandbox.smtp.mailtrap.io ESMTP server ready
EHLO exemple.com
250-sandbox.smtp.mailtrap.io Hello
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: <expediteur@exemple.com>
250 2.1.0 Sender OK
RCPT TO: <destinataire@exemple.com>
250 2.1.5 Recipient OK
DATA
354 Start mail input; end with <CRLF>.<CRLF>
From: expediteur@exemple.com
To: destinataire@exemple.com
Subject: Email Telnet

Ceci est mon premier message de test envoyé en utilisant le client Telnet sous Windows
.
250 2.0.0 Ok: queued as ABC123456789
QUIT
221 2.0.0 Service closing transmission channel

Pour apprendre à envoyer des emails de test avec Telnet sous Windows, regardez notre tutoriel dédié :

Envoyer des emails en utilisant Telnet sous Linux

L’envoi d’emails en utilisant Telnet sur une console Linux est globalement similaire à Windows. La différence réside uniquement dans le processus d’installation.

Prérequis

Installation du client Telnet

Si le client Telnet n’est pas installé sur votre machine, vous pouvez l’installer depuis votre gestionnaire de paquets. Les commandes spécifiques varient en fonction de la distribution Linux que vous utilisez.

Pour Arch Linux et Manjaro, tapez la commande suivante dans la fenêtre du terminal et appuyez sur Entrée :

$ sudo pacman -S inetutils 

Pour Ubuntu, Kali Linux, Debian, et Linux Mint :

$ sudo apt install telnet 

Pour Red Hat, Fedora, et CentOS :

$ sudo dnf install telnet 

Vous serez invité à entrer votre mot de passe administrateur. Tapez-le et appuyez à nouveau sur Entrée. Attendez que l’installation soit terminée.

Envoi des emails

Pour commencer à envoyer des emails (encore une fois, nous enverrons à la sandbox Email Sandbox de Mailtrap), démarrez la session Telnet en tapant cette commande :

$ telnet sandbox.smtp.mailtrap.io 25

Procédez ensuite de la même manière que nous l’avons décrit ci-dessus. N’oubliez pas de suivre l’ordre exact des commandes SMTP, sinon la transmission ne réussira pas. Si vous vous trompez dans l’orthographe d’une commande, vous ne pourrez pas effectuer de corrections avec la touche retour arrière. Il est recommandé d’appuyer sur Entrée, d’attendre le message d’erreur, puis d’envoyer une commande correcte.

Pour apprendre à envoyer des emails de test avec Telnet sous Linux, regardez notre tutoriel dédié :

Envoyer des emails avec un corps HTML et des pièces jointes à plusieurs destinataires

Il est également possible d’envoyer des emails HTML avec Telnet. Pour cela, vous devrez définir le Content-Type comme text/html ou multipart/alternative. Cette portion doit être insérée dans votre email après la commande DATA.

DATA

Mime-Version: 1.0      
Content-Type: multipart/alternative; boundary="peaches"; 

--peaches
Content-Type: text/plain

Ceci est un message texte brut envoyé avec Telnet

--peaches
Content-Type: text/html

<h1>Ceci est un message HTML envoyé avec Telnet</h1>

--peaches--
.
250 2.0.0 Ok: queued as ABC123456789
QUIT
221 2.0.0 Service closing transmission channel

Envoyons maintenant un email avec une pièce jointe. Pour accomplir cette tâche, nous devrons formater le message avec MIME. Le Content-Type doit être défini comme multipart/mixed pour informer le serveur de messagerie que l’email contiendra plusieurs parties, y compris une pièce jointe. L’en-tête Content-Disposition inclura la pièce jointe elle-même.

DATA

From: expediteur@exemple.com
To: destinataire@exemple.com
Subject: Email Telnet avec pièces jointes

MIME-Version: 1.0
Content-Type: multipart/mixed; boundary=boundary_9876

--boundary_9876
Content-Type: text/plain

Ceci est le corps du message de l'email.

--boundary_9876
Content-Type: application/octet-stream
Content-Disposition: attachment; filename="monjolichat.jpg"

Ceci est le contenu de la pièce jointe.

--boundary_9876--
.
QUIT

Enfin, envoyons des emails à plusieurs destinataires. C’est la partie la plus facile. Nous devons juste envoyer la commande RCPT TO plusieurs fois et inclure les adresses des destinataires dans le champ To après la commande DATA. Par exemple :

MAIL FROM: <expediteur@exemple.com>
250 2.1.0 Sender OK
RCPT TO: <destinataire1@exemple.com>
250 2.1.5 Recipient OK
RCPT TO: <destinataire2@exemple.com>
250 2.1.5 Recipient OK
RCPT TO: <destinataire3@exemple.com>
250 2.1.5 Recipient OK
DATA
354 Start mail input; end with <CRLF>.<CRLF>
From: expediteur@exemple.com
To: destinataire1@exemple.com, destinataire2@exemple.com, destinataire3@exemple.com
Subject: Email Telnet à plusieurs destinataires 

Pouvez-vous envoyer des emails avec Telnet en utilisant des serveurs SMTP gratuits ?

Oui et non.

Vous ne pourrez pas envoyer d’emails avec la console Telnet vers des serveurs SMTP gratuits en utilisant le port 25. Comme mentionné ci-dessus, il est bloqué par la majorité des fournisseurs de services de messagerie. Donc, si vous deviez envoyer un email à Gmail, Yahoo ou Microsoft Outlook, vous auriez besoin d’utiliser le port 587.

Même ainsi, la connexion ne peut servir qu’à tester un port spécifique ou une partie de la connexion. Telnet ne prend pas en charge le cryptage SSL ou TLS, donc les chances sont que vous ne pourrez pas envoyer d’emails. Nous n’avons pas pu envoyer d’emails en nous connectant aux serveurs SMTP de Gmail, Outlook et Yahoo.

Pour tester la connexion sur différents ports, vous pouvez simplement utiliser les commandes telnet smtp.gmail.com 587, telnet smtp-mail.outlook.com 587, ou telnet smtp.mail.yahoo.com 465. Si la réponse est 220, cela indique qu’il n’y a pas de problème avec les ports donnés.

Dépannage des erreurs Telnet courantes

Lorsque quelque chose ne va pas dans votre session SMTP, vous recevrez des messages d’erreur. En les interprétant, vous pourrez comprendre quel est le problème avec la connexion ou le serveur SMTP.

Voici une liste des erreurs les plus courantes et comment les corriger :

Existe-t-il une alternative à l’envoi d’emails en utilisant Telnet ?

Comme nous l’avons mentionné ci-dessus, Telnet n’est pas un moyen sécurisé d’envoyer des emails. Même si le serveur SMTP que vous avez choisi vous permet d’utiliser SMTP AUTH sans SSL/TLS (très probablement, aucun des serveurs SMTP en service ne vous le permettra), vos identifiants seront toujours visibles par quiconque est connecté au même réseau.

De plus, vos identifiants ne seront cryptés qu’avec Base64, ce qui est assez simple à déchiffrer. Cela vous laissera vulnérable aux attaques. Si vos identifiants sont compromis, il sera facile pour les attaquants d’envoyer des emails d’usurpation d’identité (spoofing) ou de lire le contenu de vos messages électroniques.

De plus, pour utiliser la commande SMTP AUTH sous Windows, vous avez besoin d’une authentification de base. Malheureusement, Microsoft a déprécié l’authentification de base pour les nouveaux locataires, ce qui signifie que vous ne pourrez pas effectuer d’authentification SMTP à partir des versions plus récentes de Windows. Cela vous obligera à terminer la session sans SMTP AUTH.

C’est pourquoi Telnet est généralement utilisé pour envoyer des emails de test, déboguer les connexions SMTP ou vérifier si le serveur SMTP ou Exchange Server est accessible via le port 25. Vous ne devriez jamais utiliser Telnet pour envoyer des emails en production. Et même si vous voulez juste tester les serveurs de messagerie, il existe de meilleures alternatives sur le marché, telles qu’OpenSSL et Mailtrap.

Wrapping up 

C’est tout ! Vous savez maintenant comment envoyer des emails en utilisant Telnet depuis Windows et Linux. Vous pouvez envoyer des messages électroniques simples ou ajouter un corps HTML, et même des pièces jointes.

N’oubliez pas, vous devriez éviter d’envoyer des emails en utilisant Telnet en production pour prévenir les problèmes de sécurité et les vulnérabilités. L’utilisation d’autres outils tels que l’Email Sandbox de Mailtrap est beaucoup plus raisonnable. Si vous appréciez nos tutoriels, consultez nos guides sur l’envoi d’emails avec PowerShell ou l’envoi d’emails avec SMTP.

Quitter la version mobile