III. Le protocol SMTP

Par Hugo ETIEVANT


  1. Introduction
  2. Déroulement d'une session SMTP
    1. Connexion (telnet)
    2. Démarrer
    3. Destinateur
    4. Destinataire
    5. Début du message
    6. Fin du message
    7. Quitter
    8. Dialogue
  3. Exemple typique de session
  4. Résumé des commandes
  5. Format MIME
    1. Introduction
    2. Manipulation
    3. Résumé des champs MIME

Introduction

Le protocol SMTP (simple mail transfert protocol) permet l'envoie de mail au format ASCII (c'est-à-dire sous forme de caractères imprimables à l'opposé du format binaire des fichiers objects ou exécutables).

Grâce à des commandes simples, vous apprendrez à envoyer des mails en ligne de commande du Shell d'Unix.


Déroulement d'une session SMTP

Connexion (telnet)

Avant de saisir les commandes spécifiques au protocol SMTP, il faut se connecter sur la machine reliée au réseau pour pouvoir transférer au réseau TCP/IP (transfert control protocol / internet protocol) les données.

Syntaxe : telnet machine port

Exemple : telnet lhpca 25

Démarrer

Premièrement, il faut démarrer la session par la commande HELO en spécifiant en paramètre un identifiant.

Syntaxe : HELO identifiant

Exemple : HELO moi

Destinateur

Ensuite, indiquer l'email du destinateur (c'est-à-dire votre adresse électronique) par la commande MAIL FROM.

Syntaxe : MAIL FROM: <email>

Exemple : MAIL FROM: <cyberzoide@multimania.com>

A noter que vous pouvez indiquer n'importe quoi comme email du momment qu'il contient le symbôle "@". Et faire une blague en vous faisant passer pour Bill.Gates@microsoft.com.

Cela peut vous permettre d'envoyer des messages de façon anonyme.

Destinataire

Puis, renseigner le destinataire du message par son email grâce à la commande RCPT TO.

Syntaxe : RCPT TO: <email>

Exemple : RCPT TO: <lionel.jospin@matigon.gouv.fr>

Début du message

Pour indiquer au protocol qu'on s'apprète à écrire le message proprement dit, il faut utiliser la commande DATA.

Syntaxe : DATA

Et ensuite on écrit le contenu du message sur plusieurs lignes.

Fin du message

La fin du message s'indique par le caractère . (point) seul sur la dernière ligne du message.

Syntaxe : .

Quitter

Et enfin, on met fin à la session par la commande QUIT.

Syntaxe : QUIT

Dialogue

Tout au long de la session, chaque commande du protocol SMTP (en mode client/serveur) envoyée fait l'objet d'une confirmation automatique (ou d'un message d'erreur) de la part serveur sur lequel vous êtes connectés.


Exemple typique de session

$ telnet miage 25
Trying 134.214.88.23...
Connected to miage.univ-lyon1.fr.
Escape character is '^]'.
220 miage.univ-lyon1.fr ESMTP Sendmail 8.9.3/8.9.3/Debian 8.9.3-21; Mon, 23 Apr 2001 09:22:13 +0200
HELO cyberzoide
250 miage.univ-lyon1.fr Hello h-etie00@b710pea.univ-lyon1.fr [134.214.89.151], pleased to meet you
MAIL FROM: <lionel.jospin@matignon.gouv.fr>
250 <lionel.jospin@matignon.gouv.fr>... Sender ok
RCPT TO: <pere-noel@pole-nord.com>
250 <pere-noel@pole-nord.com>... Recipient ok
DATA
354 Enter mail, end with "." on a line by itself
salut mon pote

viens bouffer a la maison ce soir....
.
250 JAA29061 Message accepted for delivery
QUIT
221 miage.univ-lyon1.fr closing connection
Connection closed by foreign host.
$

Résumé des commandes

SyntaxeDescription
telnet machine portConnection à la machine sur le port afin d'entrer sur le protocol SMTP.
HELO identifiantDébute la session sous l'identifiant.
MAIL FROM: <email>Spécifie l'email du destinateur.
RCPT TO: <email>Spécifie l'email du destinataire.
DATASignifie le début de la frappe du message.
.Signifie la fin du message.
QUITFerme la connection au protocol SMPT.


Format MIME

Introduction

Le format MIME (multiperpose internet mail extension) est un format universel de codage des données pour le mail. C'est ce format qui est utilisé par les logiciels de messagerie électronique.

On a vu plus haut que le SMTP permet l'envoie en format textuel de mail, c'est-à-dire que les messages sont envoyés sur le réseau internet sous la forme d'une suite de caractères. Cela ne pose pas de problème quand on souhaite envoyer un message écrit très simple mais pour l'envoie de fichiers joints, cela pose un problème.

Manipulation

Le format MIME permet de résoudre ce problème et d'intégrer à un mail n'importe quel type de données (fichier image, fichier son, exécutable...).

Les champs From, To, Bcc et autres de votre logiciel de messagerie sont au format MIME. Et il est possible de les renseigner manuellement au cours de l'écriture du message durant le protocol SMTP.

Syntaxe : Champs: valeur

Exemple : From: cyberzoide@multimania.com

Réécrivons l'exemple de session précédent en intégrant des champs au format MIME :

C: DATA
      S:354 Send mail; end with "." on a line by it self
C: From: cyberzoide@multimania.com
C: To: lionel.jospin@matignon.gouv.fr
C: MIME-Version: 1.0
C: Subject: R&V ce soir
C: Content-Type: text/plain; charset=iso-8859-1
C: salut mon pote
C:
C: Viens a la maison ce soir,
C: on se fait une bouffe...
C: .
      S:250 message accepted

Evidement, c'est pas très pratique à écrire, vive Netscape Messenger!

Résumé des champs

Voici quelques champs MIME :

ChampsDescription
Fromemail du destinateur, pend la valeur de syntaxe login@serveur ou alias <login@serveur>
Toemail du destinataire
Ccemail d'autres destinataires
Bccemail d'autres destinataires qui n'apparaîtrons pas dans le logiciels de messagerie
Subjectsujet du message
Organizationorganisation à laquelle appartient le destinateur
Senderalias ou email du destinateur
Receivedliste des intermédiaires techniques
Return-Path 
Datedate et heure d'envoie, exemple : Wed, 15 Nov 2000 10:05:57 +0100 (MET)
Reply-Toemail de réponse
Message-Ididentifiant du message de syntaxe <listedecaractères@serveur>
In-Reply-To 
Referencesidentifiants des messages successifs auxquels celui-ci fait réponse
Keywordsmots clés du message
Content-Typeformat du message text/plain ou text/richtext ou multipart/alternative ou...
Content-Transfert-Encodingformat du transfert SMTP, 8bit en général
MIME-Versionversion du format MIME utilisé, 1.0 en général