Sie sind auf Seite 1von 6

POP3, SMTP, IMAP - Protocoles de

messagerie
Juin 2014

Introduction à la messagerie électronique


Le protocole SMTP
Le protocole POP3
Le protocole IMAP
Plus d'informations

Introduction à la messagerie électronique


Le courrier électronique est considéré comme étant le service le plus utilisé sur Internet. Ainsi la
suite de protocoles TCP/IP offre une panoplie de protocoles permettant de gérer facilement le
routage du courrier sur le réseau.

Le protocole SMTP
Le protocole SMTP (Simple Mail Transfer Protocol, traduisez Protocole Simple de Transfert de
Courrier) est le protocole standard permettant de transférer le courrier d'un serveur à un autre en
connexion point à point.

Il s'agit d'un protocole fonctionnant en mode connecté, encapsulé dans une trame TCP/IP. Le
courrier est remis directement au serveur de courrier du destinataire. Le protocole SMTP
fonctionne grâce à des commandes textuelles envoyées au serveur SMTP (par défaut sur le port
25). Chacune des commandes envoyées par le client (validée par la chaîne de caractères ASCII
CR/LF, équivalent à un appui sur la touche entrée) est suivi d'une réponse du serveur SMTP
composée d'un numéro et d'un message descriptif.

Voici un scénario de demande d'envoi de mail à un serveur SMTP

Lors de l'ouverture de la session SMTP, la première commande à envoyer est la


commande HELO suivie d'un espace (noté <SP>) et du nom de domaine de votre machine
(afin de dire "bonjour je suis telle machine"), puis valider par entrée (noté <CRLF>). Depuis
avril 2001, les spécifications du protocole SMTP, définies dans le RFC 2821, imposent que
la commande HELO soit remplacée par la commande EHLO.
La seconde commande est "MAIL FROM:" suivie de l'adresse email de l'expéditeur. Si la
commande est acceptée le serveur renvoie le message "250 OK"
La commande suivante est "RCPT TO:" suivie de l'adresse email du destinataire. Si la
commande est acceptée le serveur renvoie le message "250 OK"
La commande DATA est la troisième étape de l'envoi. Elle annonce le début du corps du
message. Si la commande est acceptée le serveur renvoie un message intermédiaire
numéroté 354 indiquant que l'envoi du corps du mail peut commencer et considère
l'ensemble des lignes suivantes jusqu'à la fin du message repéré par une ligne contenant
uniquement un point. Le corps du mail contient éventuellement certains des en-têtes
suivants :
Date
Subject
Cc
Bcc
From

Si la commande est acceptée le serveur renvoie le message "250 OK" Voici un exemple de
transaction entre un client (C) et un serveur SMTP (S)

S: 220 smtp.commentcamarche.net SMTP Ready

C: EHLO machine1.commentcamarche.net
S: 250 smtp.commentcamarche.net
C: MAIL FROM:<webmaster@commentcamarche.net>

S: 250 OK
C: RCPT TO:<meandus@meandus.net>

S: 250 OK
C: RCPT TO:<tittom@tittom.fr>

S: 550 No such user here


C: DATA
S: 354 Start mail input; end with <CRLF>.<CRLF>

C: Subject: Petit Bonjour


C: Salut Meandus,
C: comment ca va?
C:
C: A bientot !
C: <CRLF>.<CRLF>

S: 250 OK
C: QUIT
R: 221 smtp.commentcamarche.net closing transmission

Les spécifications de base du protocole SMTP veulent que tous les caractères transmis soient
codés en code ASCII sur 7 bits et que le 8ème bit soit explicitement mis à zéro. Ainsi pour
envoyer des caractères accentués il faut faire recours à des algorithmes intégrant les
spécifications MIME :
base64 pour les fichiers attachés
quoted-printable (d'abbréviation QP) pour les caractères spéciaux contenus dans le corps
du message

Il est ainsi possible d'envoyer un courrier grâce à un simple telnet sur le port 25 du serveur
SMTP :

telnet smtp.commentcamarche.net 25

(le serveur indiqué ci-dessus est volontairement inexistant, vous pouvez essayer en remplaçant
commentcamarche.net par le domaine de votre fournisseur d'accès à internet)

Voici un récapitulatif des principales commandes SMTP

Commande Exemple Description


HELO
Identification à l'aide de l'adresse IP ou du nom
(désormais EHLO 193.56.47.125
de domaine de l'ordinateur expéditeur
EHLO)

MAIL FROM:
MAIL FROM: Identification de l'adresse de l'expéditeur
expediteur@domaine.com

RCPT TO:
RCPT TO: Identification de l'adresse du destinataire
destinataire@domaine.com

DATA DATA message Corps du mail

QUIT QUIT Sortie du serveur SMTP


Liste des commandes SMTP supportées par le
HELP HELP
serveur

L'ensemble des spécifications du protocole SMTP sont définies dans le RFC 821 (depuis avril
2001, les spécifications du protocole SMTP sont définies dans le RFC 2821).

Le protocole POP3
Le protocole POP (Post Office Protocol que l'on peut traduire par "protocole de bureau de
poste") permet comme son nom l'indique d'aller récupérer son courrier sur un serveur distant (le
serveur POP). Il est nécessaire pour les personnes n'étant pas connectées en permanence à
Internet afin de pouvoir consulter les mails reçus hors connexion.

Il existe deux principales versions de ce protocole, POP2 et POP3, auxquels sont affectés
respectivement les ports 109 et 110 et fonctionnant à l'aide de commandes textuelles
radicalement différentes.

Tout comme dans le cas du protocole SMTP, le protocole POP (POP2 et POP3) fonctionne
grâce à des commandes textuelles envoyées au serveur POP. Chacune des commandes
envoyées par le client (validée par la séquence CR/LF) est composée d'un mot-clé,
éventuellement accompagné d'un ou plusieurs arguments et est suivie d'une réponse du serveur
POP composée d'un numéro et d'un message descriptif.

Voici un tableau récapitulant les principales commandes POP2 :

Commandes POP2</souligne>

Commande Description
HELLO Identification à l'aide de l'adresse IP de l'ordinateur expéditeur
FOLDER Nom de la boîte à consulter

READ Numéro du message à lire


RETRIEVE Numéro du message à récupérer

SAVE Numéro du message à sauvegarder


DELETE Numéro du message à supprimer

QUIT Sortie du serveur POP2

Voici un récapitulatif des commandes POP3 :

Commandes POP3</souligne>
Commande Description

Cette commande permet de s'authentifier. Elle doit être


USER suivie du nom de l'utilisateur, c'est-à-dire une chaîne de
identifiant caractères identifiant l'utilisateur sur le serveur. La
commande USER doit précéder la commande PASS.
La commande PASS, permet d'indiquer le mot de passe de
PASS
l'utilisateur dont le nom a été spécifié lors d'une commande
mot_de_passe
USER préalable.

STAT Information sur les messages contenus sur le serveur


RETR Numéro du message à récupérer
DELE Numéro du message à supprimer

LIST [msg] Numéro du message à afficher


NOOP Permet de garder les connexion ouverte en cas d'inactivité

Commande affichant n lignes du message, dont le numéro


TOP
est donné en argument. En cas du réponse positive du
<messageID>
serveur, celui-ci renvoie les en-têtes du message, puis une
<n>
ligne vierge et enfin les n premières lignes du message.
Demande au serveur de renvoyer une ligne contenant des
informations sur le message éventuellement donné en
argument. Cette ligne contient une chaîne de caractères,
appelée listing d'identificateur unique, permettant
UIDL [msg]
d'identifier de façon unique le message sur le serveur,
indépendamment de la session. L'argument optionnel est
un numéro correspondant à un message existant sur le
serveur POP, c'est-à-dire un message non effacé).

La commande QUIT demande la sortie du serveur POP3.


QUIT Elle entraîne la suppression de tous les messages marqués
comme effacés et renvoie l'état de cette action.

Le protocole POP3 gére ainsi l'authentification à l'aide d'un nom d'utilisateur et d'un mot de
passe, il n'est par contre pas sécurisé car les mots de passe, au même titre que les mails,
circulent en clair (de manière non chiffrée) sur le réseau. En réalité, selon la RFC1939, il est
possible de chiffrer le mot de passe en utilisant l'algorithme MD5 et ainsi bénéficier d'une
authentification sécurisée. Toutefois, cette commande étant optionnelle, peu de serveurs
l'implémentent D'autre part le protocole POP3 bloque la boîte aux lettres lors de la consultation,
ce qui signifie qu'une consultation simultanée par deux utilisateurs d'une même boîte aux lettres
est impossible.

Au même titre qu'il est possible d'envoyer un email grâce à telnet, il est également possible
d'accéder à son courrier entrant grâce à un simple telnet sur le port du serveur POP (110 par
défaut) :

telnet mail.commentcamarche.net 110

(le serveur indiqué ci-dessus est volontairement inexistant, vous pouvez essayer en remplaçant
commentcamarche.net par le domaine de votre fournisseur d'accès à internet)

S: +OK mail.commentcamarche.net POP3 service

S: (Netscape Messaging Server 4.15 Patch 6 (built Mar 31 2001))


C: USER jeff
S: +OK Name is a valid mailbox
C: PASS mon_pass
S: +OK Maildrop ready
C: STAT
S: +OK 2 0
C: TOP 1 5
S: Subject: Petit Bonjour
S: Salut Meandus,
S: comment ca va?
S:
S: A bientot !
C: QUIT
S: +OK
L'affichage des données que vous saisissez dépend du client Telnet que vous utilisez. Selon
votre client Telnet, il vous faudra peut-être activer l'option echo local.

Le protocole IMAP
Le protocole IMAP (Internet Message Access Protocol) est un protocole alternatif au protocole
POP3 mais offrant beaucoup plus de possibilités :

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


IMAP permet de gérer plusieurs boîtes aux lettres
IMAP permet de trier le courrier selon plus de critères

Plus d'informations
Pour plus d'informations sur le protocole SMTP, le mieux est de se reporter à la RFC 821
expliquant de manière détaillée le protocole :

RFC 821 traduite en français


RFC 821 originale

Messaging protocols (SMTP,POP3 and IMAP4) Protocolos de mensajería (SMTP, POP3 e


IMAP4) Die Mail Protokolle (SMTP, POP3, IMAP4) I protocolli di messaggeria (SMTP, POP3,
IMAP4) Os protocolos de serviço de mensagens (SMTP, POP3 e IMAP4)
Ce document intitulé « POP3, SMTP, IMAP - Protocoles de messagerie » issu de CommentCaMarche
(www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez
copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît
clairement.