Le courrier électronique F. Nolot 1
Le courrier électronique Une des applications les plus importantes dans Internet Particularité du courrier électronique Un destinataire (ou l'expéditeur) n'est pas toujours connecté au réseau L'émetteur ne veut pas attendre que le destinataire soit atteignable Mécanisme de remise différée du courrier Délai de transfert d'un message peut être très long F. Nolot 2
Eléments conceptuels de la messagerie Agent utilisateur (UA, User Agent) Exemples : Netscape Mail, Mozilla Mail, Eudora,... Sert à composer, visualiser et stocker les messages en local Communique avec le MTA à l'aide de boîtes aux lettres Agent de transfert de messages (MTA, Message Transfer Agent) Transmet des messages entre des sites distants Utilise le protocole SMTP Exemple : sendmail, postfix F. Nolot 3
Remise différée du courrier Mécanisme de mémorisation temporaire : Spooling Le message est copié dans une zone privée du système de messagerie Une tâche de fond (MTA) essaie de transmettre le message au serveur mail du destinataire Si le serveur n'est pas disponible Le message sera gardé dans la mémoire spool Le MTA essaie périodiquement de transmettre le message Abandon au bout de quelques jours F. Nolot 4
Noms de boîtes aux lettres Normalement une boîte aux lettres est identifiée par une paire: Boîte aux lettres, nom de domaine Exemple : Boîte aux lettres : prenom.nom, pnom Nom de domaine : univ reims.fr Problèmes Le nom de la boîte aux lettres n'est pas toujours identique au nom des utilisateurs sur les machines Le nom de domaine n'indique pas toujours sur quelle machine se trouve la boîte aux lettres de l'utilisateur F. Nolot 5
Les alias Le système de messagerie utilise des alias comme adresses électroniques Un alias correspond à une ou plusieurs boîtes aux lettres Traduction 1 vers N L'alias correspond à plusieurs adresses Traduction N vers 1 Plusieurs alias correspondent à une seule boîte aux lettres Exemple : prenom.nom@univ reims.fr, pnom@univ reims.fr Le système de messagerie comporte un mécanisme d'expansion des alias Configuration du logiciel de mail (postfix) F. Nolot 6
Réexpédition du courrier L'expansion des alias ne traduit pas seulement le nom de la boîte aux lettres mais l'adresse électronique complète Permet la réalisation de liste de diffusion Les membres de la liste ne se trouvent pas nécessairement sur le même site Permet la traduction d'une adresse logique en une adresse physique Exemple : prenom.nom@domain.com transformé en fnolot@mail.domain.com Après l'expansion, la messagerie transmet les messages aux différents destinataires F. Nolot 7
Problèmes de l'expansion des alias Expansion circulaire Le site A associe une adresse X à une adresse Y sur le site B Le site B associe l'adresse Y à l'adresse X du site A Le ré expéditeur détruit des messages qui ont traversé trops de sites Fausse association Si l'administrateur mail se trompe, des mails peuvent arriver dans une mauvaise boîte aux lettres ou être perdus Configuration complexe de l'expansion des alias F. Nolot 8
Agents relais En principe le MTA de l'émetteur peut directement contacter le MTA du destinataire à travers une connexion TCP La plupart des compagnies utilisent un système relais basé sur plusieurs MTA Chaque MTA stocke le message avant de le transmettre au MTA suivant F. Nolot 9
Transfert directe vs Transfert relayé Transfert directe Transmission de bout en bout donc plus fiable L'expéditeur ne détruit le message qu'après l'avoir transmis au destinataire Transfert plus rapide Transfert relayé Moins fiable Une panne d'un relais intermédiaire peut causer la perte de messages Permet le transfert entre des systèmes de messagerie différents Permet l'utilisation d'adresses logiques F. Nolot 10
Serveur mail du destinataire Le MTA de l'expéditeur doit connaître le MTA responsable du destinataire Enregistrement MX du système DNS Envoie d'un mail à pnom@promo.ens.univ-reims.fr Recherche de l'enregistrement MX concernant le domaine promo.ens.univ-reims.fr F. Nolot 11
Format des messages Défini dans la RFC 822 Utilise le codage ASCII Un message comprend deux parties En tête Texte lisible (ASCII) comprenant plusieurs lignes Chaque ligne contient un mot clé et une valeur, séparés par ':' Mot clés : To, From, CC, BCC, Subject, Received, Date, Message ID, Reply to X... : Définis par les agents utilisateurs. Exemple : X Mailer Corps Séparé de l'en tête par une ligne blanche Texte en ASCII F. Nolot 12
Simple Mail Transfer Protocol (SMTP) Défini dans la RFC 821 Spécifie le protocole entre deux MTA pour transférer un message Ne décrit pas la communication avec l'utilisateur Accepter le message de l'expéditeur > Agent utilisateur Délivrer le message au destinataire > Agent utilisateur Modèle client serveur Utilise le port 25 pour l'établissement de connexions Protocole SIMPLE, basé sur l'échange de commandes en texte Codage des commandes en ASCII F. Nolot 13
Commande SMTP HELO nom_client Réponse du client aux message READY du serveur Identifie le client et établit la connexion MAIL From:<adresse_expéditeur> Identifie l'expéditeur originaire du message RCPT To:<adresse_destinataire> Identifie chacun des destinataires d'un message Le serveur répond s'il connaît le destinataire ou non DATA Indique que le client est près à transmettre l'intégralité du message La fin du message est signalé par un point '.' sur une ligne séparée QUIT Termine la connexion F. Nolot 14
F. Nolot 15
Protocoles de récupération de courrier L'agent utilisateur utilise un autre protocole que SMTP pour télécharger les messages depuis le serveur Pour envoyer un message vers le MTA : SMTP POP3: Post Office Protocol, version 3 Authentification de l'utilisateur Commandes STAT, LIST, RETR, DELE,... pour traiter les mails IMAP4: Internet Message Access Protocol, révision 4 Fonctionnalités similaires mais plus étendues que POP3 Permet d'accéder aux messages sur le serveur sans les télécharger Permet la création de nouvelles boîtes aux lettres Permet de synchroniser la boîte aux lettres locale avec celle sur le serveur F. Nolot 16
Transfert de données non ASCII Le courrier électronique est souvent utilisé pour transmettre des fichiers SMTP exige le codage du message en ASCII MIME: Multipurpose Internet Mail Extension RFC 1521 Traduit n'importe quelle donnée en ASCII afin de le transmettre dans le corps d'un message Indique le type des données codées et le codage utilisé dans le message Définit plusieurs nouveaux champs d'en tête F. Nolot 17
Exemple Champs d'en tête MIME Version Indique la version MIME utilisée Content type Type du contenu Comprend type/sous type (text/plain, image/jpeg, image/gif,... ) Content Transfer Encoding Indique la méthode de codage utilisée Par exemple :base64, 7 bit, quoted printable F. Nolot 18
Messages MIME multiples Un message peut contenir plusieurs parties MIME Indiqué par le type «multipart» Chaque partie peut avoir son propre type et un codage différent Champs d'en tête 'Content Type' et 'Content Transfer Encoding' pour chaque partie Sous types Multipart/Mixed Maultipart/Alternative Message contient plusieurs représentations des mêmes données F. Nolot 19