Comment écrire un mél via une connexion Telnet ?

Vous pouvez envoyer un mél par une connexion TELNET directe sur le serveur Simple Mail Ttransfert Protocol de votre fournisseur hébergeant votre BAL (Boîte Aux Lettres), depuis n’importe quelle machine reliée à l’internet. Il faut pour cela simplement connaître le nom technique du serveur SMTP en question (smtp.monprovider.com), ou son adresse IP, puis se souvenir que le port 25 ou 587 est en principe réservé au protocole SMTP.

Dans ce type de connexion, l'écriture des méls se fait en mode ASCII et vous n'aurez pas droit aux fichiers joints !

De plus, le délai de connexion est très court : si vous ne tapez rien au clavier durant plusieurs secondes, vous serez déconnecté(e). Chaque commande est suivie d'un retour chariot.

Mode d'emploi pas à pas :

  1. Lancez une session Telnet sous Windows ou une session Terminal sous MacOS. Windows dispose d’un logiciel client Telnet. Pour l’utiliser, il suffit de taper la commande « telnet » dans la zone de saisie de la fenêtre « Exécuter » ou d’entrer une ligne de commande telnet valide dans une fenêtre de commandes MS-DOS (command). Sous MacOS, utilisez le Terminal :
  2. Last login: Tue Sep 18 08:00:13 on ttys000
    imac:~ Administrateur$ telnet
    telnet>

  3. Ouvrez une connexion SMTP : tapez la commande « open » suivie de l’adresse de la machine SMTP et du paramètre 25 ou 587 qui désigne le numéro du port du protocole SMTP . La connection au serveur s’opère rapidement. Exemple si « LaPoste » est votre FAI :

    open smtp.laposte.net 25

    Le serveur POP va vous afficher une ligne de bienvenue et attendre votre réponse :

    Trying 194.117.213.7...
    Connected to smtp.laposte.net.
    Escape character is '^]'.
    220 lpn-prd-vrin002 ESMTP Postfix (Ubuntu)

  4. Dites 'Helo' !
    Vous pouvez saisir la commande HELO suivi du nom de domaine du serveur ici laposte.net, donc le nom du serveur sans le préfixe SMTP. La machine vous salue à sont tour, certaines ajoutant votre adresse IP et un petit message sympathique :

    HELO laposte.net
    250 lpn-prd-vrin003, pleased to meet you

    Vous pouvez aussi utiliser la commande étendue, EHLO qui vous donnera quelques détails techniques sur la connexion, surtout les mode d'authentification (ici LOGIN et PLAIN)

    EHLO laposte.net
    250-server.xxx.fr Hello 154.249.298.84.rev.yyy.net [84.98.199.144], pleased to meet you
    250-ENHANCEDSTATUSCODES
    250-PIPELINING
    250-8BITMIME
    250-SIZE 50000000
    250-AUTH LOGIN PLAIN
    250-STARTTLS
    250-DELIVERBY
    250 HELP

  5. Tapez la commande HELP pour obtenir la liste des commandes. Attention, à la moindre erreur de saisie, les serveurs les plus paranoïaques coupent la connexion et vous devez recommencer depuis la première étape !

    HELP

    Si la commande HELP n'est pas désactivée par le fournisseur, vous aurez ce type de réponse :

    214-2.0.0 This is sendmail
    214-2.0.0 Topics:
    214-2.0.0 HELO EHLO MAIL RCPT DATA
    214-2.0.0 RSET NOOP QUIT HELP VRFY
    214-2.0.0 EXPN VERB ETRN DSN AUTH
    214-2.0.0 STARTTLS
    214-2.0.0 For more info use "HELP ".
    214-2.0.0 To report bugs in the implementation see
    214-2.0.0 http://www.sendmail.org/email-addresses.html
    214-2.0.0 For local information send email to Postmaster at your site.
    214 2.0.0 End of HELP info

  6. Rédigez votre message. Ensuite, pour envoyer un mél, vous devez commencer par donner votre adresse valide, délimitée par les symboles inférieur et supérieur, par la commande MAIL :

    MAIL from:<monnom@mondomaine.com>

    Une réponse positive ou négative vous est retournée sous cette forme :

    250 2.1.0 <monnom@mondomaine.com>... Sender ok
    250 2.1.0 <monnom@mondomaine.com>... Sender unknown

    Puis vous devez préciser l'adresse valide de votre destinataire, entre symboles inférieur et supérieur, avec la commande RCPT :

    RCPT to:<nom.destinataire@sondomaine.com>

    Si l'adresse est valide, la réponse sera :

    250 2.1.5 ... Recipient ok

    Si la machine affiche un réponse négative comme, vous devrez utiliser un protocole d'identification STMP [1]:

    ... Relaying denied. Proper authentication required.

    Dans ce cas vous aurez besoin de créer des codes BASE64 à partir de vos identifiants SMTP. Voir en bas de page.

    Sinon, vous pouvez commencer à rédiger votre mél en saisissant la commande DATA. Le serveur vous répond éventuellement en vous rappelant que la fin d'entrée des données est commandée par la saisie d'un point (".") seul sur une ligne, suivie d'un retour chariot.

    DATA
    354 Enter mail, end with "." on a line by itself

    Vous pouvez alors rédiger votre message en commençant par préciser l'adresse de retour et le sujet du mél, suivi par votre texte, terminé par un point seul sur la dernière ligne :

    Reply-to: mon.nom@mondomaine.com
    Subject: test de message
    Bonjour, blabla, blabla...
    .

    Vous aurez au final la réponse suivante :

    250 2.0.0 t2T8pNhq000786 Message accepted for delivery

  7. Terminez la session. La commande QUIT met fin à votre session TELNET SMTP. En cas d'oubli, la temporisation du serveur vous déconnectera quoiqu'il en soit après un temps d'inactivité variable.

    221 2.0.0 server.xxx.fr closing connection
    Connection closed by foreign host.

    -ERR Disconnected for inactivity.
    Connection closed by foreign host.


Méthodes d'identification sur un serveur SMTP :

Il existe plusieurs mécanismes d'authentification qu'un serveur SMTP peut utiliser, et principalement ceux-ci :

  • PLAIN
  • LOGIN
  • CRAM-MD5
  • DIGEST-MD5

Une fois connecté au serveur SMTP, exécutez la commande EHLO pour vérifier que le mécanisme d'authentification LOGIN est possible. Repérez la ligne qui débute par 250-AUTH :

250-AUTH PLAIN LOGIN

Si LOGIN est présent, il faut alors avant tout créer deux codes BASE64 à partir de votre nom d'utilisateur et de votre mot de passe du compte SMTP. Vous pourrez ensuite exécuter la commande AUTH selon diverses syntaxes.

Codage BASE64
Utilisez ce site pour encoder vos identifiants : https://www.base64encode.org/

Première syntaxe : tapez AUTH LOGIN et retour chariot. Le serveur renvoie "334 VXNlcm5hbWU6", ce qui signifie "Username:". Saisissez votre nom d'utilisateur crypté. Le serveur répond alors "334 UGFzc3dvcmQ6", ce qui signifie "Password:". Saisissez votre mot de passe crypté.

AUTH LOGIN
334 VXNlcm5hbWU6
YmJzLmcvxbNvbnNcbtyrnQ=
334 UGFzc3dvcmQ6
dXNlcmHyHWUuY29t=
235 2.7.0 Authentication successful

Si vous obtenez un code d'erreur comme ceux-ci :

535 5.7.8 Error: authentication failed: another step is needed in authentication
535 5.7.0 Error: authentication failed: authentication failure

ou une erreur similaire, essayez la seconde syntaxe :

Deuxième syntaxe : votre nom d'utilisateur crypté est saisi sur la ligne AUTH LOGIN.

AUTH LOGIN YmJzLmNvbnN1bHRhbnQ=
334 UGFzc3dvcmQ6
dXNlcmHyHWUuY29t=
235 2.7.0 Authentication successful


Voir ensuite Comment lire ses mél via une connexion Telnet ?

Notes :
[1]Un serveur SMTP d'un fournisseur refuse en général une connexion qui provient d'un ordinateur qui n'est pas reconnu comme client. D'autres serveurs SMTP exigent une authentification. Il vous faudra alors coder vos nom d'utilisateur et mot de passe en base64 et les passer à la machine.

[Mis en ligne le 29 mars 2015]

Statistiques :

Identification :

Utilisateurs :

Il y a actuellement 1 utilisateur connecté.

Droits d'auteur :

Ce site est mis à disposition
sous un contrat Creative Commons :
http://creativecommons.org