next up previous contents index
Next: Intégration de MIME Up: MIME Previous: Types, sous-types et paramètres   Contents   Index


Codage

Comme nous l'avons vu précédemment, tous les agents de transport de messages ne permettent pas d'envoyer des messages composés de caractères accentués (avec le huitième bit), ou composés de données binaires telles que des sons, des images, des fichiers compressés, etc. car la notion de ligne est toujours présente.

Pour transmettre ces données, il faut les transformer éventuellement dans une forme compatible avec les agents de transport. Cette transformation, si elle a lieu, doit pouvoir être inversée par le destinataire (ou un n\oeud intermédiaire). Pour cela, on ajoute un champ (Content-Transfer-Encoding) à l'en-tête, afin de spécifier le type de codage utilisé pour le corps du message (ou le sous-corps s'il s'agit d'un message multipart).

Ce champ est normalement initialisé par l'UA de l'émetteur, mais il peut également être modifié par un agent de transport intermédiaire (par exemple, un client ESMTP s'apercevant que le serveur ne reconnaît pas l'extension 8BITMIME doit recoder le message en 7 bits), ou même par l'agent de remise physique lorsqu'il dépose le courrier dans la boîte aux lettres.

À l'heure actuelle, 5 codages possibles sont définis. Ils sont résumés dans le tableau suivant :

Codage Informations sur Codée sur Transportable avec
7bit 7 bits 7 bits SMTP
quoted-printable 8 bits 7 bits SMTP
base64 8 bits 7 bits SMTP
8bit 8 bits 8 bits ESMTP/8bits
binary 8 bits 8 bits ESMTP/binaire

La deuxième colonne indique si l'information d'origine nécessite le huitième bit ou non. La troisième colonne indique si l'information, une fois codée dans le mode spécifié, utilise le huitième bit ou non. La quatrième colonne indique enfin le protocole utilisable pour transférer l'information.

Les deux modes quoted-printable et base64 accomplissent la même fonction : transformer un message contenant des informations sur 8 bits en une suite de caractères 7 bits. Les différences sont la lisibilité et la densité d'information :

On voit bien que le codage base64 permet de coder des fichiers binaires avec une surcharge (overhead) relativement faible par rapport au codage quoted-printable (multiplication de la taille des messages par 4/3 au lieu de de 3 dans le pire des cas). En revanche, un message codé en base64 est illisible, alors qu'un message codé en quoted-printable reste déchiffrable par le destinataire qui n'a pas de décodeur approprié.

Les messages codés en 8bit nécessitent, pour être véhiculés sur le réseau, un protocole admettant les données sur 8 bits. Seul ESMTP avec l'extension 8BITMIME (voir page [*]) sait le faire correctement.

Le dernier codage, binary, est prévu pour transférer des données binaires telles que sons, images, etc. sans modification. S'il est théoriquement transportable avec ESMTP et l'extension BINARYMIME (voir page [*]), il n'est en pratique pas traité par sendmail, et il pose des problèmes de représentation dans les boîtes aux lettres.


next up previous contents index
Next: Intégration de MIME Up: MIME Previous: Types, sous-types et paramètres   Contents   Index
Pierre DAVID 2001-11-26