MIME: Encodage


Pour mémoire, on se souvient que SMTP ne supporte à l'origine que des lignes courtes encodées avec un jeu de caractères sur 7 bits. Or avec la multitude de types décrite ci-dessus, cela ne va pas être facile. Pour pallier cette limitation, chaque objet peut être encodé. On utilisera pour cela le champ Content-Transfer-Encoding. Les valeurs possible pour ce champs sont: BASE64, QUOTED-PRINTABLE, 8BIT, 7BIT, BINARY, x-EncodingName (MIME est un standard ouvert, on pourra donc définir ses propres encodeurs).

7bit est utilisé lorsque le message est constitué exclusivement par des caractères us-ascii, il n'y a donc pas d'encodage.

Quoted-printable est très similaire, il permet d'encoder un message principalement constitué de caractères us-ascii, les autres sont escapés à l'aide du signe égal (=) et de 2 chiffres hexadécimaux. Ce format offre l'avantage de resté lisible même si les lignes doivent être découpées en segment de 76 caractères.

Pour 8bit et binary, il n'y a pas d'encodage, il faut donc que les relais SMTP supportent cette possibilité. Contrairement à binary, 8bit indique que les lignes du messages sont courtes (c'est-à-dire moins de 76 caractères).

Base64 permet d'encoder n'importe quel objet avec un jeu de caractères 7bits. En théorie le document résultat doit être un suite de ligne de longueur maximum 76 caractères.