technique · réponse sourcée

MIME : Multipurpose Internet Mail Extensions

MIME signifie Multipurpose Internet Mail Extensions. C’est une norme qui étend le Simple Mail Transfer Protocol (SMTP) d’origine pour permettre l’échange de contenus autres que du texte, comme des images, de l’audio, de la vidéo et des données d’application, ainsi que des formats de texte enrichi comme le HTML.

Comment fonctionne MIME

MIME ajoute des en-têtes spécifiques au message pour indiquer au client de messagerie destinataire comment traiter le corps. L’en-tête le plus important est Content-Type, qui définit le type de média des données. Par exemple, text/plain désigne du texte simple, tandis que text/html désigne une page web mise en forme. Lorsque plusieurs types de contenu sont envoyés dans un même e-mail, les types multipart/mixed ou multipart/alternative servent à regrouper les différentes sections.

Pourquoi c’est important pour les expéditeurs

MIME est indispensable à la délivrabilité et à l’expérience utilisateur de l’e-mail moderne. Sans lui, les e-mails seraient limités aux caractères ASCII 7 bits, ce qui rendrait l’internationalisation impossible et empêcherait l’utilisation de pièces jointes. Grâce à MIME, les expéditeurs peuvent fournir une version de secours en texte brut en plus d’une version HTML, pour que le message reste lisible quelles que soient les capacités du client de messagerie du destinataire.

Notes opérationnelles et erreurs

Une erreur courante consiste à ne pas définir le bon charset dans l’en-tête Content-Type, ce qui produit des caractères cassés ou du mojibake. Autre problème : des définitions de boundary incorrectes dans les messages multipart, qui peuvent faire apparaître l’e-mail sous forme de code brut ou faire disparaître des pièces jointes. Les développeurs doivent s’assurer que les données binaires sont correctement encodées en Base64 pour éviter toute corruption lors du transit par les relais SMTP.

Exemple concret

Un en-tête MIME typique pour un e-mail HTML avec pièce jointe ressemble à ceci : Content-Type: multipart/mixed; boundary=boundary_123. Dans le corps, la première partie est marquée Content-Type: text/html; charset=UTF-8 pour le corps du message, et la seconde Content-Type: application/pdf; name=invoice.pdf pour le fichier. Vous pouvez utiliser SendHQ ou ses outils gratuits (https://sendhq.cc/tools) pour analyser la structure de vos en-têtes.

Mécanismes d’encodage

Comme SMTP a été conçu pour le texte, MIME utilise des schémas d’encodage pour transporter des données binaires. Base64 est la méthode la plus courante : elle convertit les fichiers binaires en une chaîne de caractères ASCII. L’encodage Quoted-Printable est utilisé pour du texte majoritairement ASCII qui contient quelques caractères non ASCII ; il réduit le surcoût par rapport à Base64 tout en restant compatible avec les anciens systèmes de messagerie.

Les questions que posent les équipes

MIME est-il la même chose que SMTP ?

Non. SMTP est le protocole qui transporte l’e-mail d’un serveur à un autre, tandis que MIME est la norme qui définit le format du contenu transporté.

Qu’est-ce que le type MIME multipart/alternative ?

Il est utilisé lorsque le même contenu est envoyé dans plusieurs formats, comme le texte brut et le HTML, ce qui permet au client de messagerie de choisir la meilleure version à afficher.

Pourquoi utilise-t-on Base64 dans MIME ?

Base64 encode les données binaires en texte ASCII, ce qui garantit qu’elles restent intactes lors de leur passage par des serveurs de messagerie qui ne prennent en charge que le texte 7 bits.

MIME peut-il servir en dehors de l’e-mail ?

Oui, le système de types MIME (aujourd’hui appelés Media Types) est utilisé partout sur le web, notamment dans les en-têtes HTTP pour décrire le type de fichier téléchargé ou envoyé.

Sources primaires