Fonctionnement général des emails

Adrien Kunysz

Un email transite par plusieurs "agents"

  • Mail User Agent
  • Mail Transfer Agent
  • Mail Delivery Agent
  • Mail Access Agent

Mail User Agent

  • la partie vue par l'utilisateur
  • envoit le message au MTA via SMTP
  • va chercher les messages auprès du MAA via POP3, IMAP,...
  • mailx, mutt, Evolution, Thunderbird,...

Mail Transfer Agent

  • reçoit le message du MUA
  • le transmet au MTA suivant ou au MDA (toujours via SMTP)
  • sendmail, postfix, exim, qmail,...

Mail Delivery Agent

  • reçoit l'email et le place dans la boîte de réception
  • souvent intégré au MTA
  • la boîte de réception peut être implémentée de différentes façons:
    • fichier mbox
    • répertoire maildir
    • ...

Mail Access Agent

  • rend la boîte de réception accessible au MUA
  • serveur POP3, IMAP,...
  • Cyrus,...

anatomie d'un email

  • 3 parties:
    • l'enveloppe
    • l'entête
    • le corps

enveloppe

  • contient normalement les champs "To" et "From" qui sont dans l'entête
  • ne fait pas partie de l'email
  • utilisé uniquement au niveau SMTP

entête

  • ensemble de paires de clés/valeurs propre à l'email
  • champs courants: From, To, Date, Message-Id, Subject, Cc, Reply-To, In-Reply-To,...
  • on peut "inventer" des champs qu'il est recommandé de commencer par "X-"

corps

  • le message lui même
  • normalement entièrement en ASCII
  • nécessité de recoder les messages non ASCII

MIME (Multipurpose Internet Mail Extensions)

  • permet d'avoir plusieurs parties dans un même message
  • permet un codage et un type différent pour chaque partie
  • pas réservé uniquement aux emails (aussi utilisé dans HTTP)

codages MIME

  • 7bit
  • 8bit
  • binary
  • quoted-printable
  • base64