Utiliser telnet pour envoyer un mail

Envoyer un mail via la commande telnet permet de tester la configuration d'un serveur SMTP.

En rouge, les informations à saisir.

$ telnet smtp.free.fr 25
Trying 212.27.48.4...
Connected to smtp.free.fr.
Escape character is '^]'.
220 smtp4-g21.free.fr ESMTP Postfix
HELO test.domain.com
250 smtp4-g21.free.fr
MAIL FROM:<test@domain.com>
250 2.1.0 Ok
RCPT TO:<toto@domain.fr>
250 2.1.5 Ok
DATA
354 End data with <CR><LF>.<CR><LF>
Subject: test message
This is the body of the message!
.

250 2.0.0 Ok: queued as 2D8FD4C80FF
quit
221 2.0.0 Bye
Connection closed by foreign host.

Explications :

  1. Connexion au serveur SMTP sur le port 25
  2. Le serveur nous renvoie quelques informations
  3. Exécution de la commande HELO avec le nom de notre domaine en paramètre
  4. Le serveur nous répond qu'il est OK
  5. On indique l'émetteur grâce à la commande MAIL FROM
  6. Le serveur nous répond qu'il est OK
  7. On indique le destinataire grâce à la commande RCPT TO
  8. Le serveur nous répond qu'il est OK
  9. On indique le début du message grâce à la commande DATA
  10. Le serveur nous indique qu'il faut saisir un point (.) pour terminer le message
  11. On indique le sujet du message
  12. On saisie le corp du message
  13. On saisi un point (.) pour indiquer la fin du message
  14. Le serveur nous répond qu'il est OK
  15. On ferme la connexion grâce à la commande quit

Si une authentification est nécessaire, après avoir envoyé la commande HELO, il suffit d'envoyer la commande AUTH LOGIN (après le point 4).

Le serveur répond en affichant "334 VXNlcm5hbWU6".
Cette chaine est encodée en base64. 
Traduction en langage humain : "334 Username:"
Il suffit donc de répondre en renseignant son username encodé, bien sûr, en base64.
Le serveur répond ensuite en affichant "334 UGFzc3dvcmQ6".
Cette chaine est également encodée en base64.
Traduction en langage humain : "334 Password:"
Il suffit donc de répondre en renseignant son password encodé, également, en base64.
Si tout se passe bien, le serveur doit répondre "235 Authentication successful"
Reste à continuer la procédure à partir du point 5.

Pour l'encodage en base64, toutes les infos ici.

Etiquettes: