Protocole des extensions de courrier Internet (MIME)

Comprendre les en‑têtes MIME

Les en‑têtes MIME contiennent des informations sur le protocole.

MIME-Version

Cela indique que le message est au format MIME. Il apparaît ainsi :

MIME-Version : 1.0

Content-Type

Cela indique le type de contenu du message, donné sous forme de paire type/sous‑type : text/plain, text/html, par exemple. Le type de contenu multipart peut contenir du texte, du HTML, des pièces jointes, des images, de l’audio, de la vidéo, etc.

Content-Type : multipart

Content-Transfer-Encoding

Indique si un schéma d’encodage binaire‑vers‑texte est utilisé en plus de l’encodage spécifié par le content-type. Le cas échéant, indique lequel. Nous pouvons spécifier ici les types d’encodage 7‑bit, 8‑bit et binaire.

Mot encodé

Les en‑têtes des messages SMTP utilisent normalement des caractères ASCII. Les caractères non ASCII doivent utiliser la syntaxe de mot encodé MIME au lieu d’une chaîne littérale. Le format est :

"=? charset ? encoding ? texte encodé ?=".

Messages multipart

Un message multipart MIME contient une frontière dans l’en‑tête content-type. Cette frontière, qui ne doit pas apparaître dans aucune des parties, est placée entre les parties, ainsi qu’au début et à la fin du corps du message, comme suit :

MIME-version : 1.0


 Content-type: multipart/mixed; boundary="frontier"

This is a multi-part message in MIME format.

--frontier

Content-type: text/plain

This is the body of the message.

--frontier

Content-type: application/octet-stream

Content-transfer-encoding: base64

PGh0bWw+CiAgPGhlYWQ+CiAgPC9oZWFkPgogIDxib2R5PgogICAgPHA+VGhpcyBpcyB0aGUg

Ym9keSBvZiB0aGUgbWVzc2FnZS48L3A+CiAgPC9ib2R5Pgo8L2h0bWw+Cg==

--frontier--

Chaque partie comprend son propre en‑tête de contenu et un corps.

Sous‑types multipart

La norme MIME définit différents sous‑types de messages multiparties. Le sous‑type est spécifié dans l’en‑tête « Content-Type » du message global.

Voici une liste des sous‑types les plus couramment utilisés.

  • Mixed : multipart/mixed est utilisé pour envoyer des fichiers avec différents en‑têtes « Content-Type » en ligne. Lors de l’envoi d’images ou d’autres fichiers facilement lisibles, la plupart des clients de messagerie les affichent en ligne.
  • Message : une partie message contient un e‑mail.
  • Digest : digest est une façon simple d’envoyer plusieurs messages texte. Le type de contenu par défaut de chaque partie est « message/rfc822 ».
  • Alternative : le sous‑type alternative indique que chaque partie est une version « alternative » du même (ou similaire) contenu, chacune dans un format différent indiqué par son en‑tête « Content-Type ».

Le type multipart/alternative est le plus couramment utilisé pour les e‑mails à deux parties, une en texte brut (text/plain) et une en HTML (text/html). La partie texte brut assure la compatibilité descendante tandis que la partie HTML permet le formatage et les hyperliens. La plupart des clients de messagerie offrent à l’utilisateur la possibilité de privilégier le texte brut par rapport au HTML ; c’est un exemple de la façon dont des facteurs locaux peuvent influencer le choix, par l’application, de la partie « la meilleure » du message à afficher.