Envoyer un mail en telnet

Objectif

Ce document à pour objectif de tester le bon fonctionnement d'un serveur SMTP grâce à l'envoie d'un mail à l'aide de telnet.

Installation

Linux

Le programme telnet n'est plus installé par défaut. Il reste cependant disponible dans les dépôts et peut donc s'installer simplement avec la commande :

# apt-get install telnet

Windows

Windows dispose également d'un client telnet natif lui aussi désactiver par défaut. Plutôt que de l'activer et donc laisser un port ouvert sur notre machine, nous utiliserons le logiciel PuTTY (ou KiTTY) disposant de l'option telnet.

Envoi du mail

Pré-requis

En cas d'authentification, le serveur demandera votre nom d'utilisateur et mot de passer encoder en base64.
Sous un système Linux, on utilisera perl pour faire la conversion :

perl -MMIME::Base64 -e 'print encode_base64("username");'
perl -MMIME::Base64 -e 'print encode_base64("password");'

Pour Windows, ce sera PowerShell :

$u = [System.Text.Encoding]::UTF8.GetBytes("username")
[System.Convert]::ToBase64String($u)
$p = [System.Text.Encoding]::UTF8.GetBytes("password")
[System.Convert]::ToBase64String($p)

username et password correspondent à vos identifiants !

Telnet

Une fois toutes ces informations acquise, nous sommes prêts à passer à l'action. On commence par se connecter. Nous entrons l'adresse du serveur puis le port utiliser, qui sera 25, 465 ou 587 selon la paramétrage du serveur.

telnet mon.server.mail 465

Maintenant que nous sommes connecté, nous pouvons étamer l'échange :

EHLO mon.server.mail
AUTH LOGIN

Le serveur répondra avec le code 250 à la première commande et 334 VXNlcm5hbWU6; pour la seconde. Elle indique que le serveur souhaite avoir mon nom d'utilisateur en base64.

Une fois valider le serveur répondra 334 UGFzc3dvcmQ6; qui correspond cette fois au mot de passe.

Si la procédure de connexion s'est déroulée correctement, le serveur répondra 235 Authentication succeeded.

Nous sommes alors identifié sur le serveur et pouvons envoyer un mail :

MAIL FROM: notre.mail@server.mail
RCPT TO: desti.nataire@server.mail
DATA
Subject: Message de test
Contenu du mail
Sur plusieurs lignes
.

Le “.” de la dernière ligne est important. Il indique au serveur que l'on à fini d'entrer notre message et qu'il peut l'envoyer.

Pour quitter, on utilisera la commande

QUIT

Il ne reste qu'à vérifier la boite de destination qui devrait voir le mail arrivé