Comment Ca Marche - Communauté informatique  
   
Accueil - Encyclopédie informatiqueTélécharger l'encyclopédieContribuer à cet article

Internet - Les protocoles de messagerie (SMTP,POP,IMAP)

Les protocoles de messagerie Encyclopédie


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 (désormais EHLO) EHLO 193.56.47.125 Identification à l'aide de l'adresse IP ou du nom de domaine de l'ordinateur expéditeur
MAIL FROM: MAIL FROM: expediteur@domaine.com Identification de l'adresse de l'expéditeur
RCPT TO: RCPT TO: destinataire@domaine.com Identification de l'adresse du destinataire
DATA DATA message Corps du mail
QUIT QUIT Sortie du serveur SMTP
HELP HELP Liste des commandes SMTP supportées par le 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
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
Commande
Description
USER identifiant Cette commande permet de s'authentifier. Elle doit être suivie du nom de l'utilisateur, c'est-à-dire une chaîne de caractères identifiant l'utilisateur sur le serveur. La commande USER doit précéder la commande PASS.
PASS mot_de_passe La commande PASS, permet d'indiquer le mot de passe de l'utilisateur dont le nom a été spécifié lors d'une commande 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é
TOP <messageID> <n> Commande affichant n lignes du message, dont le numéro est donné en argument. En cas du réponse positive du serveur, celui-ci renvoie les en-têtes du message, puis une ligne vierge et enfin les n premières lignes du message.
UIDL [msg] 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 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é).
QUIT La commande QUIT demande la sortie du serveur POP3. 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 :

Trucs & astuces pertinents trouvés dans la base de connaissances

28/09 20h00 Adresses serveurs POP ET SMTP des FAI (Messagerie électronique)
SMTP Plus d'astuces sur « SMTP »

Discussions pertinentes trouvées dans le forum

04/07 12h01 debian iptables ftp pop smtp [Debian] iptables problème ftp, pop, smtp Linux/Unix 07/07 16h36->kilian18
17/09 11h45 smtp alice smtp ALICE ? Internet 07/11 19h46->seb18
31/07 10h20 smtp incredimail Probleme de smtp par incredimail Logiciels/Pilotes 17/02 19h02->verstaevel16
22/01 01h57 connexion serveur smtp Connexion impossible au serveur SMTP Réseaux 14/02 01h16->Plug12
16/02 09h39 fermer ping ssh smtp Comment fermer Ping, SSH et SMTP ? Virus/Sécurité 11/03 12h26->balltrap3411
21/09 03h46 smtp server SMTP server Windows 22/11 18h46->Galsungen10
30/08 00h28 smtp wanadoo incredimail Probleme de SMTP wanadoo avec incredimail Internet 02/09 00h13->Stéphane9
29/06 17h10 son serveur smtp pop Créer son serveur SMTP ou POP Réseaux 30/06 16h20->Nitch8
17/05 18h47 connexion serveur sortant smtp free Prob connexion serveur sortant smtp free Internet 14/02 21h50->sultan547
07/07 15h17 serveur smtp windows 2003 server Serveur SMTP Windows 2003 server Réseaux 14/09 21h34->jojodeparis6
Discussion fermée Problème résolu SMTP Plus de discussions sur « SMTP »

Ce document intitulé « Internet - Les protocoles de messagerie (SMTP,POP,IMAP) » issu de l'encyclopédie informatique Comment Ça Marche (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.