MIME: Types


Voyons un peu la liste des types disponibles, qui permettent de faire de jolis emails.
  • Application : c'est le type polyvalent (ou poubelle selon votre point de vue), on l'utilise pour tous les cas non définis ailleurs.
    • Application/Octet-Stream: indique des données binaires de type quelconque. On trouvera la plupart des attachements que l'on utilise quotidiennement comme les fichiers compressés, les documents… On pourra utiliser le paramètre Name pour nommer l'objet.
    • Application/PostScript

  • Audio : le seul sous-type disponible est basic (son mono, échantillonné à 8kHz) qui présente peut d'intérêt aujourd'hui, on utilisera donc généralement Application/Octet-Stream.
  • Vidéo : avec le sous-type Mpeg (Video/Mpeg), on définit un objet vidéo encodé au standard MPEG.

  • Image o Image/Jpeg : image au format Jpeg o Image/Gif : image au format Gif Seul ces deux formats sont définis, voila pourquoi on utilisera aussi beaucoup le type Octet-Stream pour pallier ce manque.

  • Message o Message/Rfc822 : permet d'encapsuler un email o les autres sous-types sont peu usités

  • Multipart : C'est là que MIME prend toute son ampleur, avec la possibilité de composer son message avec plusieurs objets. C'est pour cette raison que MIME est souvent associé à l'usage des attachements (ou fichiers joints). C'est en fait dans ce cas qu'on le retrouve le plus souvent. Pour définir un type Multipart, il est obligatoire de spécifier le paramètre boundary. Ce paramètre permet de définir le début et la fin de chaque objet. Le début d'un objet est précédé d'un ligne comprenant un double tiret (--) et la chaîne définie comme boundary. A la fin du dernier objet on ajoute le double tirets a cet ensemble (--boudary--). On prendra soit de s'assurer que ces chaînes de caractères ne peuvent pas apparaître dans le corps d'un objet!!! De même un objet pouvant lui aussi être de type Multipart, il faudra alors définir un deuxième boundary différent du premier.
    • Multipart/Mixed : le grand classique qui indique plusieurs body parts (objets) à présenter en série. On à donc une ligne du type : Content-Type: Multipart/Mixed; boundary="__delimiteur___"
    • Multipart/Alternative : le format est le même que pour mixed, mais chaque objet représente le même contenu de façon différente. Le client pourra alors choisir celui qui correspond le plus à ces goûts ou ces possibilités d'affichage. On pourra ainsi avoir un même texte présenté par exemple en HTML ou en texte pure.
    • Multipart/Parallel : cette fois le contenu des objets sera exécuté en parallèle, on pourra ainsi avoir une vidéo et du son.

  • Text : pour ces objets on pourra utiliser le paramètre Charset pour définir le jeu de caractères utilisé (US-ASCII, ISO-8859-1, …)
    • Text/Plain : du texte, rien que du texte, sans fantaisie.
    • Text/Richtext : pour un peu plus de gaîté et de couleur, on peut utiliser un sous ensemble de SGML pour écrire son texte.
    • Text/Html : comme on peut l'imaginer, cela permet d'envoyer du texte en utilisant le formant html.

  • X- : suivi de ce que l'on veut. On peut définir ses propres types privés et ainsi étendre les fonctionnalités de MIME.

C'est un peu rébarbatif et longuet, je n'ai donc fait figurer que les types principaux. Pour obtenir une liste complète et exhaustive des types, consultez les RFCs.