Vous êtes sur la page 1sur 18

SMTP :: Présentation

Définition
SMTP signifie Simple Message Transfert Protocole, ce protocole est utilisé pour transférer les
messages électroniques sur les réseaux.
Un serveur SMTP est un service qui écoute sur le port 25, son principal objectif est de router les
mails à partir de l'adresse du destinataire.

Exemple général
Avant de rentrer en détail dans la description de ce protocole, il est important de connaitre les
différentes phases qui se succèdent entre l'envoie d'un mail par l'émetteur et sa réception par le
destinataire.
Le schéma suivant présente la succesion de ces différentes phases :

Dans cet exemple, Fred, qui appartient au domaine truc.fr, veut envoyer un mail à Marc, qui, lui,
appartient au domaine machin.com.
Fred va composer son mail sur son ordinateur puis va exécuter la commande d'envoi de son logiciel
de messagerie. Le logiciel va contacter le serveur smtp du domaine truc.fr (1), c'est ce serveur qui
va se charger d'acheminer (router) le mail vers le destinataire.
Le serveur smtp.truc.fr va lire l'adresse de destination du mail, le domaine du destinataire n'étant
pas truc.fr, le serveur va alors contacter le serveur smtp du domaine machin.com.
Si ce serveur existe, ce qui est le cas ici, smtp.truc.fr va lui transférer le mail (2).
Le serveur smtp.machin.com va vérifier que l'utilisateur Marc existe bien dans sa liste
d'utilisateurs. Il va ensuite placer le mail dans l'espace mémoire accordé aux mails de Marc sur le
serveur (3).
Le mail est ainsi arrivé à destination. L'objectif du protocole SMTP est atteint.
Ensuite c'est le protocole POP qui est utilisé.
Lorsque Marc utilisera son logiciel de messagerie pour vérifier s'il a de nouveaux mails, le logiciel
va solliciter le serveur pop (4) afin que celui-ci vérifie si des mails sont dans l'espace mémoire
accordé à Marc (5).
S'il y a un message, le serveur pop va l'envoyer au logiciel de messagerie de Marc (6)
Détail du fonctionnement
Le service SMTP est divisé en plusieurs parties, chacune assurant une fonction spécifique :

 MUA : Mail User Agent, c’est le client de messagerie (Exemples : Outlook, ThunderBird),
 MTA : Mail Transfert Agent, c'est l'élément principal d'un serveur SMTP car c'est lui qui
s'occupe d'envoyer les mails entre les serveurs. En effet, avant d'arriver dans la boite mail
du destinataire, le mail va transiter de MTA en MTA. Il est possible de connaitre l'ensemble
des MTA par lesquels le mail est passé, pour cela il suffit d'afficher la source du message,
 MDA : Mail Delivery Agent, c'est le service de remise des mails dans les boîtes aux lettres
(les espaces mémoires réservés) des destinataires, il intervient donc en fin de la chaine
d'envoie d'un mail.

SMTP :: les serveurs


Il existe de nombreux serveurs SMTP, voici une présentation des plus connus/utilisés.

Sendmail
La première version a été réalisée en 1983.
C'est à l'heure actuelle le MTA le plus utilisé, il représente environ 55% des serveurs SMTP.
Sa fiabilité n'est plus à remetre en cause.
Sendmail est donc le plus puissant et le plus ancien MTA mais il reste l'un des plus compliqué à
mettre en place et à maintenir.

Postfix
Postfix est considéré par beaucoup comme étant la meilleure alternative à Sendmail.
En effet, ce sérieux challenger est le principal concurrent de Sendmail dans le domaine des MTA
UNIX.
Postfix est d'ailleurs installé par défaut dans les nouvelles distributions grand public telles que
Mandrake.

Exim et Smail
Il existe plusieurs serveurs SMTP moins connus mais tout aussi fiable, Exim et Smail en sont de
bons exemples.
Ces serveurs sont simples (et donc n'offre pas de fonctionnalités avancées, mais peuvent suffir
dans certains cas).
Exim est d'ailleurs le MTA par défaut de la distribution Debian.

Windows
Enfin, sous l'OS Windows, il existe aussi des serveurs SMTP.
Sous WindowsXP et Windows2000, un service SMTP est inclus.
Il existe aussi plusieurs freewares tels que FTGate.
Néanmoins, aucun n'a réellement de succès face aux serveurs UNIX.

SMTP :: Utilisation du protocole


Principe d'utilisation
SMTP est un protocole de type client / serveur.
En effet, il y a une session qui s'établit entre le programme client et le serveur SMTP.
Durant cette session, un jeu de commandes est utilisé.

Chaque commande envoyée par le client est suivie d'une réponse du serveur.
La réponse est de type :

<code><msg>[<précisions>]

Par exemple, la réponse suivante indique que la commande passée a correctement été reçue et
appliquée par le serveur :

250 Ok

Les différentes commandes


Les commandes sont présentées dans l'ordre chronologique d'utilisation.

 Il faut tout d'abord s'identifier auprès du serveur, on passe donc le nom de sa machine en
paramètre de la commande :
HELO <nom_de_machine>

 On spécifie l'adresse de l'expéditeur du mail via la commande :


MAIL FROM:<adresse_email_expéditeur>

 On indique l'adresse du destinataire du mail via la commande :


RCPT TO:<adresse_email_destinataire>

 Il faut ensuite entrer le corps du mail grace a la commande suivante :


DATA<cr>

On entre alors le texte du message normalement, bien sûr aucune mise en forme n'est
disponible.

 Plusieurs options sont disponibles, telle que la spécification de la date d'envoie du mail :
Date: <date_voulue>

 Il est aussi possible de spécifier un objet au mail :


Subject: <objet>

 On peut également ajouter des destinataires en copie conforme :


Cc: <adresse_mail>

 Enfin, il faut terminer le corps du mail par la commande suivante :


.<cr>

 Pour fermer le dialogue avec le serveur SMTP, on utilise la commande :


QUIT

SMTP :: L'aspect sécurité


Les messages circulent en clair sur le réseau
Un des principaux défauts du protocole SMTP est que les messages circulent en clair sur le réseau.
Ainsi il est possible à l'aide d'un sniffer de capturer les trames. Celles-ci n'étant pas cryptées, on
peut alors y lire les données.
Pour contrer cela de plus en plus de gens ont recours à une méthode de chiffrage de leurs mails
importants.

Le spam
Si le serveur est mal configuré, il peut servir de serveur relais.
Cette technique est très utilisée par les spammeurs qui sont toujours en quête de serveurs mal
sécurisés.
Par ce biais ils peuvent envoyer leurs messages de spam tout en étant difficilement repérables.

Les sociétés qui développent les serveurs SMTP distribuent désormais leurs serveurs avec l'option
de relayage désactivée.
De plus il existe des modules à rajouter à un serveur et qui permettent de stopper la diffusion de
spam par le serveur (Exemple : spamassassin).
POP :: Présentation
Définition
POP signifie Post Office Protocol. Actuellement c'est la version 3 qui est utilisée.
Le service POP écoute sur le port 110 d'un serveur.

Objectif
Le protocole POP a un objectif précis : permettre à l'utilisateur de relever son courrier depuis un
hôte qui ne contient pas sa boîte aux lettres.
En d'autres termes, POP établie un dialogue entre le logiciel de messagerie (MUA) et la boîte aux
lettres de l'utilisateur sur le serveur.

Fonctionnalités
POP est avant tout un protocole très simple, de ce fait il ne propose que des fonctionnalités
basiques:

 Délimiter chaque message de la boite aux lettres,


 Compter les messages disponibles,
 Calculer la taille des messages,
 Supprimer un message,
 Extraire chaque message de la boite aux lettres.
Malgrès tout, ces fonctionnalités sont amplement suffisantes pour répondre aux besoins de la
plupart des utilisateurs.

POP :: Utilisation du protocole


Principe d'utilisation
Tout comme SMTP, POP est un protocole de type client / serveur.
Toujours comme SMTP, POP utilise un jeu de commandes spécifiques lors d'une session entre le
programme client et le serveur.

Chaque commande envoyée par le client est suivie d'une réponse du serveur.
Par exemple, la réponse suivante indique que la commande passée a correctement été reçue et
appliquée :

+OK
Le format de réponse suivant indique une erreur au niveau du serveur :
-ERR <raison>

Les différentes commandes


Les commandes sont présentées dans l'ordre chronologique d'utilisation.

 Il faut tout d'abord s'identifier auprès du serveur :


USER <nom_utilisateur>

 Le serveur requiert un mot de passe afin de valider la connexion :


PASS <mot_de_passe>

 Pour connaitre le nombre de message présents sur le serveur ainsi que la taille totale des
messages :
STAT

 Pour lister les messages sur le serveur, avec, pour chacun, le numéro d'ordre dans la file
de messages et la taille en octets :
LIST

 Pour récupérer un message :


RETR <id_msg>

 Pour récupérer les x premières lignes d'un message (l'en-tête et le début du message) :
TOP <id_msg> <nbr_de_lignes>

 Pour effacer un message :


DELE <id_msg>

 Pour clore la session avec le serveur :


QUIT

Exemple d'utilisation
Il est possible d'exécuter un telnet sur un serveur POP (port 110), et de passer les commandes soi-
même.
Voici un exemple de ce qu'il est possible de faire :

Cette première phase permet de s'authentifier et de recuillir les principales informations


concernant notre compte mail.

Avec la commande retr 1, on choisit d'afficher le message d'id 1:


Tout le corps du message ainsi que toutes les infos de son en-tête sont alors visibles.

On quitte la connexion avec le serveur, celui-ci acquitte la commande.

Log sous Windows


Il est possible de visualiser les échanges entre son client et le serveur POP de son Fournisseur
d'Accès à Internet (FAI) lorsque l'on utilise le logiciel de messagerie Outlook.
Pour cela, il faut cocher la case comme indiqué ci-dessous:

Voici alors un exemple de fichier généré par Outlook:

Outlook Express 6.00.2800.1409


POP3 Log started at 11/03/2004 08:06:06
POP3: 08:06:12 [rx] +OK <3014.1099465542@pop2-q.free.fr>
POP3: 08:06:12 [tx] USER loginA
POP3: 08:06:12 [rx] +OK
POP3: 08:06:12 [tx] PASS ********
POP3: 08:06:12 [rx] +OK
POP3: 08:06:12 [tx] STAT
POP3: 08:06:12 [rx] +OK 3 10634
POP3: 08:06:12 [tx] LIST
POP3: 08:06:12 [rx] +OK
POP3: 08:06:12 [rx] 1 1559
POP3: 08:06:12 [rx] 2 1560
POP3: 08:06:12 [rx] 3 7515
POP3: 08:06:12 [rx] .
POP3: 08:06:12 [tx] RETR 1
POP3: 08:06:12 [rx] +OK 1559 octets
POP3: 08:06:12 [tx] RETR 2
POP3: 08:06:12 [rx] +OK 1560 octets
POP3: 08:06:13 [tx] RETR 3
POP3: 08:06:13 [rx] +OK 7515 octets
POP3: 08:06:13 [tx] DELE 1
POP3: 08:06:13 [rx] +OK
POP3: 08:06:13 [tx] DELE 2
POP3: 08:06:13 [rx] +OK
POP3: 08:06:13 [tx] DELE 3
POP3: 08:06:13 [rx] +OK
POP3: 08:06:13 [tx] QUIT
POP3: 08:06:13 [rx] +OK
POP3: 08:06:13 [rx] +OK POP3 server ready
POP3: 08:06:13 [tx] USER loginB
POP3: 08:06:14 [rx] +OK loginB, i need your password
POP3: 08:06:14 [tx] PASS ********
POP3: 08:06:17 [rx] +OK loginB maildrop locked and ready
POP3: 08:06:17 [tx] STAT
POP3: 08:06:17 [rx] +OK 4 8550
POP3: 08:06:17 [tx] LIST
POP3: 08:06:17 [rx] +OK 4 messages (8550 octets)
POP3: 08:06:17 [rx] 1 2981
POP3: 08:06:17 [rx] 2 1275
POP3: 08:06:17 [rx] 3 1274
POP3: 08:06:17 [rx] 4 3020
POP3: 08:06:17 [rx] .
POP3: 08:06:17 [tx] RETR 1
POP3: 08:06:18 [rx] +OK here comes the message (2981 octets)
POP3: 08:06:18 [tx] RETR 2
POP3: 08:06:19 [rx] +OK here comes the message (1275 octets)
POP3: 08:06:19 [tx] RETR 3
POP3: 08:06:21 [rx] +OK here comes the message (1274 octets)
POP3: 08:06:21 [tx] RETR 4
POP3: 08:06:21 [rx] +OK here comes the message (3020 octets)
POP3: 08:06:21 [tx] DELE 1
POP3: 08:06:21 [rx] +OK message 1 deleted
POP3: 08:06:21 [tx] DELE 2
POP3: 08:06:21 [rx] +OK message 2 deleted
POP3: 08:06:21 [tx] DELE 3
POP3: 08:06:22 [rx] +OK message 3 deleted
POP3: 08:06:22 [tx] DELE 4
POP3: 08:06:22 [rx] +OK message 4 deleted
POP3: 08:06:22 [tx] QUIT
POP3: 08:06:22 [rx] +OK Good bye loginB
POP3: 08:06:22 [rx] +OK POP3 server ready (7.0.028)
<B9EF8151D59EAE69938A5276B2C979FED1FBBCD6@mx.laposte.net>
POP3: 08:06:22 [tx] USER loginC
POP3: 08:06:22 [rx] +OK Password required
POP3: 08:06:22 [tx] PASS ********
POP3: 08:06:23 [rx] +OK 3 messages
POP3: 08:06:23 [tx] STAT
POP3: 08:06:23 [rx] +OK 3 336632
POP3: 08:06:23 [tx] LIST
POP3: 08:06:23 [rx] +OK
POP3: 08:06:23 [rx] 1 1038
POP3: 08:06:23 [rx] 2 334556
POP3: 08:06:23 [rx] 3 1038
POP3: 08:06:23 [rx] .
POP3: 08:06:23 [tx] RETR 1
POP3: 08:06:23 [rx] +OK 1038 bytes
POP3: 08:06:23 [tx] RETR 2
POP3: 08:06:23 [rx] +OK 334556 bytes
POP3: 08:06:54 [tx] RETR 3
POP3: 08:06:54 [rx] +OK 1038 bytes
POP3: 08:06:54 [tx] DELE 1
POP3: 08:06:54 [rx] +OK message marked for deletion
POP3: 08:06:54 [tx] DELE 2
POP3: 08:06:55 [rx] +OK message marked for deletion
POP3: 08:06:55 [tx] DELE 3
POP3: 08:06:55 [rx] +OK message marked for deletion
POP3: 08:06:55 [tx] QUIT
POP3: 08:06:55 [rx] +OK POP3 server closing connection

On remarque qu'il y a trois serveurs POP3 sollicités et que chacun répond différement aux
commandes passées.
En effet il est possible de configurer le serveur POP au niveau des messages de réponse aux
clients.
D'après le listing ci-dessus, on visualise clairement les commandes passées par Outlook lors de la
récupération des messages sur notre poste.

POP :: Avantages / Inconvénients


Simplicité
Le service POP3 est très simple mais propose toutes les fonctionnalités nécessaires pour la gestion
d'un compte mail.
Ainsi, de part son efficacité, POP3 reste l'un des protocoles les plus utilisés pour récupérer ses
mails.

Mot de passe...
POP3 présente tout de même quelque points faibles notamment le fait que le mot de passe circule
en clair sur le réseau lors de l'établissement de la connexion avec le serveur.
Ainsi, une personne malhonnête équipée d'un sniffer peut le récupérer et l'utiliser à mauvais
escient.
IMAP :: Présentation
Définition
IMAP signifie Internet Message Access Protocol, la version actuellement utilisée est la 4.
Le service IMAP écoute sur le port 143 d'un serveur.

Alternative plus évoluée


Tout comme POP, IMAP est un protocole de récupération de mails. IMAP4 se pose donc comme une
alternative a POP3.
Non seulement IMAP propose plus de services que POP, mais ceux-si sont aussi plus évolués.

Une des principales nouveautés est la possibilité de pouvoir lire uniquement les objets des
messages (sans le corps).
Ainsi on peut par exemple effacer des messages sans les avoir lus.

Stockage des mails sur le serveur


Contrairement au protocole POP où tous les mails sont rapatriés du serveur vers le logiciel de
messagerie du client, avec IMAP, les mails restent stockés dans des dossiers sur le serveur.
Ceci permet de proposer de nombreuses fonctionnalités très pratiques, telles que :

 créer des dossiers sur le serveur,


 effacer, déplacer des messages sans les lire, éventuellement avec des règles de tri
automatique,
 rapatrier en local certains messages et pas d'autres, en faisant une copie ou un
déplacement,
 lire des messages en les laissant sur le serveur,
 marquer des messages sur le serveur,
 recopier sur le serveur des messages qui sont en local.

IMAP :: Avantages / Inconvénients


Avantages
Etant donné les fonctionnalités implémentées dans IMAP , celui-ci est donc plus puissant que POP.
Voici les points forts par rapport à POP :

 permet de gérer plusieurs accès simultanés


 permet de gérer plusieurs boîtes aux lettres
 permet de trier le courrier selon plus de critères
 protection contre les virus

Sous-exploité
IMAP n'est pas aussi répandu que POP, peut-etre parceque certains logiciels de messagerie (MUA)
ne l’exploitent pas correctement.
Outllok fait parti des ces MUA qui n'utilisent pas 100% des fonctionnalités implémentées dans
IMAP. Ainsi, si on limite l'utilisation d'IMAP aux fonctionnalités de POP, autant utiliser ce dernier.

De plus, les serveurs IMAP sont pus complexes à installer et à maintenir que les serveurs POP. Les
Fournisseurs d'Accès à Internet ne proposent donc le plus souvent que les protocole POP à leurs
adhérents.

IMAP :: Les serveurs


Il existe plusieurs serveurs IMAP, mais deux sortent du lot et dominent le marché.
Ces deux serveurs fonctionnent différement, voyons cela plus en détail.

UW-IMAP
UW-IMAPD est développé par l'université de Washington aux USA.
Il utilise le format "mailbox" pour stocker les messages. C'est un format classique que les MDA
savent généralement bien gérer.
En fait, les messages sont enregistrés dans un fichier unique, pour un utilisateur donné.
Le plus souvent, chaque utilisateur devra disposer d'un compte sur le serveur, même si ce compte
ne lui permet pas d'ouvrir une session shell.
Les dossiers IMAP que le client peut créer se situent au même niveau que INBOX et chaque dossier
créé correspond sur le serveur à un fichier.
Ce genre de serveur est extrêmement facile à installer.

Cyrus
Cyrus est développé par l'université de Carnegie Mellon aux USA.
Il s'appuie sur le format "maildir" pour stocker les messages.
Les messages sont stockés chacun dans un fichier séparé, rangés dans un répertoire par
utilisateur.
Les utilisateurs peuvent être enregistrés dans une base de données, un annuaire LDAP et n'ont
absolument pas besoin de disposer d'un compte UNIX sur la machine serveur.
Ce serveur est plus souple, plus sûr, offre plus de possibilités et, bien entendu, est beaucoup plus
difficile à installer et à configurer.

autres serveurs
D'autres serveurs existent, comme courier-imap. Il est plus proche de Cyrus que de UW-imap et
utilise lui aussi le format "Maildir".

IMAP :: Utilisation du protocole


Principe d'utilisation
IMAP, à l'instar de POP ou SMTP, est un protocole de type client / serveur.
Lors d'une session, le client utilise un jeu de commandes spécifiques pour discuter avec le serveur.

Le client peut envoyer plusieurs commandes sans obligatoirement attendre à chaque fois la
réponse. Un tag précédant chacune des commandes doit être ajouté afin de permettre au serveur
de retrouver facilement la réponse à une commande donnée.

De plus chaque commande envoyée par le client est suivie d'une réponse par le serveur de la
forme suivante en cas de réussite :

<tag> OK <commande> completed

Les différentes commandes


Le nombre de commandes mises à disposition par un serveur IMAP est beaucoup plus important
qu'en POP (25 contre 12).

Les principales commandes présentées ici sont dans l'ordre chronologique d'utilisation.

 Il faut tout d'abord s'authentifier auprès du serveur :


Login <user> <mot_de_passe>

 Il faut ensuite choisir la boite aux lettres que l'on souhaite utiliser :
Select inbox

 La commande Fetch est très puissante elle permet de faire de nombreuses et diverses
sélections auprès de la liste des messages et des messages eux-mêmes :
Fetch <id(s)_msg(s)> <action>

 Enfin pour quitter la session de dialogue avec le serveur :


Logout

Exemple d'utilisation
Il est possible d'exécuter un telnet sur un serveur IMAP (port 143), et de passer les commandes soi-
même.
Voici un exemple de ce qu'il est possible de faire :
La commande avec le tag a1 sert à s'authentifier auprès du serveur.
Ensuite on choisit de travailler dans le dossier INBOX avec la commande précédée du tag a2.
Puis on choisit d'afficher la taille de chacun des messages avec la commande précédée du tag a3.
Enfin, on décide de connaitre le corps du message 1 avec la commande a4.

POP ou IMAP ?
Un choix personnel
Le choix dépend essentiellement de la manière dont on travaille, à savoir si l'on doit accéder à ses
messages depuis plusieurs postes de travail dans l'Ecole ou ailleurs, ou encore si on ne lit ses
messages que depuis son seul poste de travail et donc aucune raison de vouloir faire de la gestion
de messages sur le serveur.
Dans le premier cas, on choisira le protocole IMAP et dans le second, le protocole POP3.
Il n'y a évidemment pas de protocole idéal pour tous.

Récapitulatif POP3
Le protocole POP est à conseiller si l'on est dans une (ou plusieurs) des situations suivantes :

 une ligne haut débit.


 consultation des mails depuis un poste unique.
 volonté de lire ses mails en mode hors-ligne.
 volonté de rapatrier l'ensemble de ses mails et de faire ses propres sauvegardes.

Récapitulatif IMAP4
Le protocole IMAP est particulièrement utile à toutes les personnes qui se déplacent souvent et
qui désirent consulter leur messagerie depuis n'importe quel ordinateur connecté à Internet :
 professeurs et assistants en déplacement,
 secrétaires dans leurs multiples affectations,
 étudiants entre une salle de machines et une autre,
 collaborateurs à leur poste de travail ou à la maison.

Ce protocole peut aussi être très utile si l'on a une ligne bas débit et peu fiable.
De même si l'on souhaite disposer d'une sauvegarde de ses mails sur le serveur de son FAI, ce
protocole est à prescrire car, bien qu'il faille dans ce cas un espace de stockage important, la
plupart des FAI fournissent désormais des boites mails d'une capacité de 100Mo, ce qui est
suffisant.

Vous aimerez peut-être aussi