Vous êtes sur la page 1sur 32

Université Université

De Boumerdes De Limoges

Département de physique/Infotronique
IT/S5

SMTP/POP/IMAP
Messagerie éléctronique

Réalisé par : Dr RIAHLA


Doctorant à l’université de limoge (France)
SMTP
Simple Mail Transfert Protocol

Réalisé par : Dr RIAHLA 2


SMTP
Simple Mail Transfert Protocol
• Un des protocoles les plus fondamentaux de l'Internet
• Permet de transporter les messages sur l'Internet.
• Il sait acheminer un message jusqu'à une boîte aux
lettres, mais ne va pas plus loin.

• Pour y arriver, il analyse dans un premier temps la


partie de l'adresse située à droite du @, pour trouver le
domaine du destinataire.
• Si ce domaine le concerne, il cherche alors la boîte aux
lettres du destinataire en regardant la partie de
l'adresse située à gauche du @.
• Si le domaine du destinataire ne le concerne pas, il va
chercher le serveur SMTP qui gère ce domaine, au
moyen des champs MX du DNS du domaine
destinataire et transmet le message à ce serveur..
Réalisé par : Dr RIAHLA 3
SMTP
Définitions
• Le MUA (Mail User Agent), c'est le client de messagerie
(Thunderbird, Outlook Express, Eudora, Pegasus etc.).
• Le MTA (Mail Transfert Agent) Le courrier peut être
acheminé d'un point à un autre par l'intermédiaire d'agents de
transfert qui ne gèrent pas de boites aux lettres, mais savent
relayer le courrier d'un point à un autre pour atteindre le
serveur supportant les boites aux lettres.
• Le MDA (Mail Delivery Agent) aussi appelé LDA (Local
Delivery Agent) est le service de remise du courrier dans les
boites aux lettres des destinataires, une fois que le courrier
est arrivé sur le MTA de destination. Le MTA transmet alors au
MDA les messages destinés aux clients du domaine.
• Le MX (Mail eXchanger), n'est rien de plus qu'un MTA
référencé sur les DNS..

Réalisé par : Dr RIAHLA 4


SMTP
Exemple

Soit un utilisateur abonné chez « truc » et ayant pour


adresse électronique :fred@truc.fr.

Soit un autre utilisateur abonné chez « machin » et ayant


pour adresse électronique marc@machin.com.

truc dispose des serveurs :


smtp.truc.fr
pop.truc.fr
machin dispose des serveurs :
smtp.machin.com
pop.machin.com
Fred doit envoyer un message à Marc.

.
Réalisé par : Dr RIAHLA 5
SMTP
Exemple

Réalisé par : Dr RIAHLA 6


SMTP
Exemple
1. Fred compose le message avec son outil de messagerie et
l’envoie au sur le serveur smtp.truc.fr,
2. Le serveur smtp.truc.fr constate que le destinataire n'est
pas dans son domaine. Il cherche alors un MTA dans le
domaine machin.com et le trouve (DNS). Il envoie le
message à smtp.machin.com.
3. Le serveur smtp.machin.com constate que le destinataire
est bien dans son domaine. Il range alors le message
dans la boite aux lettres de Marc, par l'intermédiaire d'un
composant appelé MDA, comme Mail Delivery Agent.
4. Un jour, Marc décide de regarder s'il n'a pas de
messages. Il envoie donc une requête à son serveur
pop.machin.com, au moyen de son outil de messagerie
préféré, par exemple « Thunderbird » (un autre MUA).
Réalisé par : Dr RIAHLA 7
SMTP
Exemple

5. Le serveur pop consulte la boite aux lettres


de Marc, constate qu'il y a un message
dedans.
6. Il l'envoie alors à l'outil de messagerie de
Marc qui, par défaut, demandera à
pop.machin.com de le supprimer (POP) de la
boite aux lettres.

POP3 est un protocole de relève de courrier.


Sans entrer ici dans les détails, il en existe un
autre appelé IMAP.

Réalisé par : Dr RIAHLA 8


SMTP
Détail de l'en-tête

Réalisé par : Dr RIAHLA 9


SMTP
Utilité de l'en-tête

• Identifier l'auteur du message


• Identifier le destinataire
• Savoir à qui il faut répondre
• Retrouver le chemin suivi par le message
• Savoir comment a été codé ce message.
• Des informations « subsidiaires » (champs X…) qui ne sont pas
utilisés par SMTP ni ESMPT, mais qui permettent de donner des
informations qui peuvent être utiles, comme le MUA qui a
généré le message.

Réalisé par : Dr RIAHLA 10


SMTP
Avec telnet

le contenu de l'en-tête, est transmis dans la commande DATA au même tire


que le « contenu » du message. La conséquence est qu'il est parfaitement
possible de forger complètement une partie de l'en-tête

Réalisé par : Dr RIAHLA 11


SMTP
Codage des messages
• Codage « Aucun » ou « plain/text » (le texte est
lisible)
• Codage: « quoted printable » (déconseillé)
• Codage « base 64 »
• Le codage HTML (Content-Type:
multipart/alternative;)
• Un document HTML peut véhiculer des scripts
malicieux ayant des comportements de virus,
• La longueur des messages générés,
• Les boites aux lettres sont souvent limitées en taille

Réalisé par : Dr RIAHLA 12


SMTP
Fiabilité, sécurité
• SMTP est un très vieux protocole. C'est le RFC 821, en
1982.

• A cette date, les connexions étaient rares, peu fiables et


le souci premier était d'assurer un transport sans pertes.

• Depuis, les conditions ont bien changé et la sécurité, qui


n'avait pas été prise en compte, devient un souci majeur.

• ESMTP a ajouté quelques fonctionnalités importantes,


comme le support du codage sur 8 bits, les types MIME et
aussi la possibilité de chiffrer la connexion.

Réalisé par : Dr RIAHLA 13


SMTP
Extended SMTP
• SMTP est un très vieux protocole. C'est le RFC 821, en 1982.

• A cette date, les connexions étaient rares, peu fiables et le souci


premier était d'assurer un transport sans pertes.

• Depuis, les conditions ont bien changé et la sécurité, qui n'avait


pas été prise en compte, devient un souci majeur.

• ESMTP a ajouté quelques fonctionnalités importantes, comme le


support du codage sur 8 bits, les types MIME et aussi la
possibilité de chiffrer la connexion.

• Aujourd'hui, tous les serveurs SMTP sont en réalité des serveurs


ESMTP. Pour le vérifier, utilisons la commande EHLO plutôt que
HELO :

Réalisé par : Dr RIAHLA 14


SMTP
Extended SMTP
• Chiffrer la connexion de deux manières légèrement différentes. SMTPS
passe le dialogue SMTP dans une connexion SSL.

• L'autre méthode, plus actuelle, consiste à invoquer la commande


STARTTLS.

• Si la mise en œuvre d'une commande STARTTLS entre un MUA et un


serveur SMTP est assez simple, elle devient plus compliquée entre deux
serveurs SMTP, du fait que les certificats des serveurs doivent être
signés par une racine de confiance acceptée par le partenaire.

• Aussi, il est rare qu'un chiffrement ait lieu entre deux MTA. Ce qui veut
dire que votre message circule en clair sur l'internet.

• STARTTLS comme SSL offrent tout de même l'avantage pour le client de


masquer son login.

Réalisé par : Dr RIAHLA 15


SMTP
Résumé
• Une recherche DNS sur les MX (Mail Exchanger) concernés par
le domaine du destinataire,

• Un dialogue entre le MTA trouvé et le client, suivant le protocole


SMTP pour transférer le message.

• Il n'est pas obligatoire que le message transite directement de


votre serveur SMTP à celui du destinataire.

Réalisé par : Dr RIAHLA 16


POP3 (port 110)
Post Office Protocol

Réalisé par : Dr RIAHLA 17


POP3

• Permettre à l'utilisateur de relever son courrier depuis un hôte qui


ne contient pas sa boite aux lettres.
• Ouvrir entre le client et le serveur une connexion TCP.
• Le serveur POP3 est capable de répondre à un certain nombre de
commandes.
• Les messages sont contenus sur le serveur dans une file, un
fichier unique pour tous les messages, si le stockage est de type
Mailbox.
• POP3 est capable de les délimiter, de les compter, de calculer leur
taille, d'extraire tout ou partie de chaque message, de supprimer
un message,
• Messages dans des fichiers indépendants, répertoires de stockage
personnalisés pour le tri et l'archivage, s'effectue au client pas sur
le serveur

Réalisé par : Dr RIAHLA 18


POP3
Les commandes de POP3

Réalisé par : Dr RIAHLA 19


POP3
Expérience avec TELNET
• POP3 tourne sous la forme d'un démon qui écoute par défaut sur le port 110.

Stat nous apprend qu'il y a 3 messages, puis la commande list qui ne fait
que donner les numéros d'ordre et la taille en octets de chaque message.

Réalisé par : Dr RIAHLA 20


POP3 et les MUA

• POP3 est un protocole simple. Pourtant la plupart des clients de


messagerie (Thunderbird, Outlook etc.) ne l'exploitent pas
pleinement.

• Généralement notre client de messagerie effectue par défaut, la


suite des opérations suivante :
 ouverture de la session POP3 ;
 identification du client (user et pass) ;
 récupération en local puis effacement de tous les messages
présents sur le serveur (list, retr, dele) ;

• Généralement, il est au moins possible de demander au MUA de


laisser une copie sur le serveur, donc le MUA tient à jour (en
principe) une liste des index de messages déjà lus de manière à ne
pas les récupérer à nouveau à chaque session

Réalisé par : Dr RIAHLA 21


POP3 et les MUA

• Il faut bien noter que dans tous les cas, les messages lus sont
copiés en local, même s'ils ne sont pas détruits sur le serveur.

• Utiliser POP3 lorsque l'on est amené à lire sa messagerie depuis


plusieurs postes n'est pas bien pratique. I

• l faut en effet prévoir une stratégie qui permette d'effacer les


messages sur le serveur une fois que l'on est assuré de les avoir
récupérés sur chaque poste.

• De plus, les messages sont dupliqués sur chaque poste client


utilisé, il faut les retrier sur chaque poste, etc. IMAP va beaucoup
nous aider dans ce cas.

Réalisé par : Dr RIAHLA 22


IMAP (port)
Internet Mail Access Protocol

Réalisé par : Dr RIAHLA 23


IMAP

• Un protocole de relève des messages électroniques,


fonctionnellement comparable à POP.

• Il est défini par le RFC 2060, remplacé par le RFC 3501.

• Un serveur IMAP écoute par défaut sur le port 143.

Réalisé par : Dr RIAHLA 24


IMAP vs POP3

• POP3 permet de travailler en modes « hors-ligne » et « déconnecté »:


• De rapatrier tous ses messages en local et de les effacer du serveur, ce
qui permet d'interrompre la connexion et de gérer ses messages
localement (mode « hors-ligne »),
• de faire la même chose, mais en rapatriant une copie locale des
messages, laissant les messages « originaux » sur le serveur (mode «
déconnecté »).

• Le mode « hors-ligne » est tout à fait utilisable si l'on ne gère sa


messagerie que depuis un seul poste de travail, ce qui n'est pas toujours le
cas.

• Le mode « déconnecté » permet quant à lui une gestion depuis plusieurs


postes, mais pose tout de même le problème de la purge du serveur. En
effet, il faudra bien faire de la place de temps en temps si l'on ne veut pas
voir sa boîte exploser. Et les messages une fois détruits sur le serveur ne
pourront plus y être remis autrement qu'en se les renvoyant.

Réalisé par : Dr RIAHLA 25


IMAP vs POP3

Mais avec IMAP4 ...


les messages peuvent être entièrement gérés en restant sur le serveur. IMAP
propose en effet les possibilités suivantes :
• Lecture des objets des messages seulement (sans le corps) ;
• création de dossiers sur le serveur ;
• déplacement de messages sur le serveur d'un dossier à l'autre, sans avoir
à rapatrier tout le message en local ;
• effacement de message sans l'avoir lu ;
• lecture des messages en les laissant sur le serveur ;
• marquage des messages sur le serveur. Par exemple, vous lisez un
message sur un poste client A, lorsque vous ouvrez votre messagerie sur
un poste client B, le message apparaitra comme lu.
• il est possible, si le FAI le permet, de poser sur le serveur des filtres qui
classeront les messages à leur arrivée sur le serveur. Ainsi, en ouvrant une
session IMAP, les messages déjà triés dans les bons dossiers.
Cette notion de dossiers de stockage sur le serveur n'est pas en POP3

Réalisé par : Dr RIAHLA 26


IMAP vs POP3

• Rapatrier en local certains messages et pas d'autres, en faisant


une copie ou un déplacement, éventuellement avec des règles de
tri automatiques,

• Recopier sur le serveur des messages que vous avez en local,

Réalisé par : Dr RIAHLA 27


Les commandes de Imap

Réalisé par : Dr RIAHLA 28


Les flags de Imap

Réalisé par : Dr RIAHLA 29


Quelques commandes utiles

CAPABILITY: elle permet au client de savoir ce dont le


serveur est capable

LSUB et LIST: Ces deux commandes permettent de


savoir quels sont les répertoires souscrits et existants.

SELECT: Permet de sélectionner un dossier et d'avoir un


compte rendu de son contenu.

UID et FETCH: avoir le détail des FLAGS pour tous les


messages présents dans INBOX

Réalisé par : Dr RIAHLA 30


Quelques commandes utiles

STARTTLS: permet de négocier entre le client et le


serveur une méthode de chiffrement des données
échangées.

Le serveur doit présenter un certificat (avec sa clé


publique) et le client doit accepter ce certificat. Soit
automatiquement parce qu'il est signé par une autorité
de confiance connue, soit manuellement.

STARTTLS employé avant AUTHANTICATE permet de


chiffrer aussi la procédure de login. Il n'est que trop
conseillé d'utiliser cette méthode si le serveur le permet.

Réalisé par : Dr RIAHLA 31


Pratique,,,

Réalisé par : Dr RIAHLA 32

Vous aimerez peut-être aussi