| Courrier électronique Avancé : Risques |
MIME (Multipurpose Internet Mail Extensions) est un standard qui a été proposé par les laboratoires Bell Communications en 1991 afin d'étendre les possibilités limitées du courrier électronique (mail) et notamment de permettre d'insérer des documents (images, sons, texte, ...) dans un courrier. Il est défini à l'origine par les RFC 1341 et 1342 datant de juin 1992.
MIME propose de décrire, grâce à des en-têtes, le type de contenu du message et le codage utilisé.
MIME apporte à la messagerie les fonctionnalités suivantes :
MIME utilise des directives d’entête spécifiques pour décrire le format utilisé dans le corps d’un message, afin de permettre au client de messagerie de pouvoir l'interpréter correctement :
Le type MIME, utilisé dans l'entête Content-Type, est utilisé d'une part pour typer les documents attachés à un courrier. Un type MIME est constitué de la manière suivante :
Content-type: type_mime_principal/sous_type_mimeUne image GIF possèdera par exemple le type MIME suivant :
Content-type: image/gif
Les types principaux de données, appelés parfois « types de données discrets », sont les suivants :
Le type MIME est également utilisé sur le Web, pour typer les documents transférés par le protocole HTTP. Ainsi, lors d'une transaction entre un serveur web et un navigateur internet, le serveur web envoie en premier lieu le type MIME du fichier envoyé au navigateur, afin que ce dernier puisse savoir comment afficher le document.
Pour transférer des données binaires, MIME propose cinq formats de codage pouvant être utilisé dans l'entête Transfer-encoding :
MIME, étant très ouvert, permet d'utiliser des formats de codage tierstels que les suivants :
L'utilisation de l'entête Transfer-encoding permet de préciser un format d'encodage pour le corps du message, mais ne résoud pas le problème de l'encodage des entêtes eux-mêmes (par exemple le sujet du message).
Ainsi, pour permettre d'encoder les entêtes avec des alphabets de plus de 7 bits, et permettre par exemple d'avoir un sujet de mail accentué, le standard MIME propose le format suivant :
=?charset?encodage?resultat?=
Subject: Comment =?ISO-8859-1?Q?=E7a_marche_=3F?=
Grâce au type MIME « multipart » le standard MIME permet de définir des messages composites, c'est-à-dire des messages comportant plusieurs pièces jointes, éventuellement emboîtées.
Pour ce faire, MIME permet de définir un séparateur appelé boundary. Il s'agit d'une chaîne arbitraire définie en attribut de l'entête Content-type :
Content-Type: multipart/mixed; boundary="------------020005090303070203010601"Chaque séparateur délimite un contenu commençant par les entêtes Content-Type et Content-Encoding. Il est essentiel que la valeur de ce séparateur n'existe pas dans le contenu du message.
Il existe plusieurs types de séparateurs :
Les types MIME sont normalisés par un organisme appelé IANA (Internet Assigned Numbers Authority). Voici une liste non exhaustive des types MIME les plus courants
| Type MIME | Type de fichier | Extension associée |
|---|---|---|
| application/atom+xml | Fichiers au format ATOM | atom |
| application/iges | Fichiers CAS | iges |
| application/javascript | Fichiers Javascript | js |
| application/dxf | Fichiers AutoCAD | dxf |
| application/mp4 | Fichiers MPEG4 | mp4 |
| application/iges | Format d'échange CAO IGES | igs,iges |
| application/octet-stream | Fichiers binaires non interprétés | bin |
| application/msword | Fichiers bureautique au format Microsoft Word | doc |
| application/pdf | Fichiers Adobe Acrobat | |
| application/postscript | Fichiers PostScript | ai,eps,ps |
| application/rtf | Format de texte enrichi | rtf |
| application/sgml | Fichiers SGML | sgml |
| application/vnd.ms-excel | Fichiers tableur au format Microsoft Excel | xls |
| application/vnd.ms-powerpoint | Fichiers diaporama au format Microsoft Powerpoint | ppt |
| application/xml | fichier XML | xml |
| application/x-tar | Fichiers compressés tar | tar |
| application/zip | Fichiers compressés ZIP | man |
| audio/basic | Fichiers audio basiques | au,snd |
| audio/mpeg | Fichiers audio MPEG | mpg,mp3 |
| audio/mp4 | Fichiers audio MPEG-4 | mp4 |
| audio/x-aiff | Fichiers audio AIFF | aif,aiff,aifc |
| audio/x-wav | Fichiers audio Wave | wav |
| image/gif | Images gif | man |
| image/jpeg | Images JPEG | jpg,jpeg,jpe |
| image/png | Images PNG | png |
| image/tiff | Images Tiff | tiff,tif |
| image/x-portable-bitmap | Fichiers Bitmap PBM | pbm |
| image/x-portable-graymap | Fichiers Graymap PBM | pgm |
| image/x-portable-pixmap | Fichiers Pixmap PBM | ppm |
| multipart/x-zip | Fichiers archive zip | zip |
| multipart/x-gzip | Fichiers archive GNU zip | gz,gzip |
| text/css | Feuille de style | css |
| text/csv | Fichiers texte avec séparation des valeurs | csv |
| text/html | Fichiers HTML | htm,html |
| text/plain | Fichiers texte sans mise en forme | txt,g,h,c,cc,hh,m,f90 |
| text/richtext | Fichiers texte enrichis | rtx |
| text/rtf | Fichiers texte au format Rich Text Format | rtf |
| text/tab-separated-value | Fichiers texte avec séparation des valeurs | tsv |
| text/xml | Fichiers XML | xml |
| video/h264 | Vidéos H.264 | h264 |
| video/dv | Vidéos au format DV | dv |
| video/mpeg | Vidéos MPEG | mpeg,mpg,mpe |
| video/quicktime | Vidéos QuickTime | qt,mov |
| video/msvideo | Vidéos Microsoft Windows | avi |