MIME

MIME. C'est quoi ?

Multipurpose Internet Mail Extension. Comme son nom l'indique, c'est une suite d'extensions pour permettre, principalement aux e-mails, de transporter autre chose que du texte, à savoir, du son, des images, de la vidéo… Autant de choses pour lesquelles la messagerie n'est à priori pas faite.

Ces extensions servent également sur le web, lorsque l'on utilise HTTP pour transporter autre chose que du texte (ce qui est souvent le cas). Voyez le chapitre « HTTP » à ce propos.

MIME rassemble deux choses distinctes :

  • Une description normalisée d'un type de document (non texte pur).
  • Le mode de codage employé pour le transporter.

L'IANA maintient une liste des MIME Media Types.

MIME et SMTP

C'est ici que MIME prend toute son importance. En effet, en plus de pouvoir définir des types de documents, il peut aussi définir des types d'encodages, comme Base64 ou Quoted-Printable.

Exemple

Un exemple significatif. Il reprendra ce que nous avons eu l'occasion de voir par ailleurs.

Le message contient le texte :

juste un texte légèrement accentué...
suivi d'une image gif.

codé Quoted-Printable , suivi d'une image gif en pièce jointe. Voici le message tel qu'il est reçu :

Return-Path: <christian.caleca@epikoi.net>
...
From: "Christian Caleca" <christian.caleca@epikoi.net>
To: <christian.caleca@epikoi.net>
Subject: demo MIME
Date: Sat, 9 Nov 2002 11:29:09 +0100
MIME-Version: 1.0
Content-Type: multipart/mixed;

On est averti qu'il y aura plusieurs morceaux de type différents...

boundary="----=_NextPart_000_0044_01C287E3.38B13A20"

Avec un séparateur bien défini, que l'on ne peut confondre avec un plan de fraises des bois.

X-Priority: 3
X-MSMail-Priority: Normal
X-Mailer: Microsoft Outlook Express 6.00.2800.1106
X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2800.1106

This is a multi-part message in MIME format.

------=_NextPart_000_0044_01C287E3.38B13A20
Content-Type: text/plain;
charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable

La partie texte, codée « quoted-printable »...

juste un texte l=E9g=E8rement accentu=E9...
suivi d'une image gif.

Voilà qui est fait. L'image, maintenant :
------=_NextPart_000_0044_01C287E3.38B13A20
Content-Type: application/octet-stream;
name="moineau1.gif"
Content-Transfer-Encoding: base64
Content-Disposition: attachment;
filename="moineau1.gif"

Difficile d'être plus précis :
   type :flux d'octets
   nom : moineau1.gif
   codage : Base64...
Suit maintenant le fichier binaire converti en base64 :

R0lGODlhcgH8APf/AP//////zP//mf//Zv//M///AP/M///MzP/Mmf/MZv/MM//MAP+Z//+ZzP+Z
...
...
...
GZACDvqwAvWAOgEBADs=

------=_NextPart_000_0044_01C287E3.38B13A20--

Comme prévu, ce message contient bien deux parties :

  • Du texte pur, codé en Quoted-Printable,
  • une image gif, codée en Base64

L'image, dans Outlook Express, va apparaitre sous le texte, séparée par un filet horizontal.

Autre exemple

Plus moderne, avec Thunderbird, un message codé en UTF-8, avec en plus un é dans le sujet :

Return-Path: <christian.caleca@epikoi.net>
...
Message-ID: <4A5071E0.7080308@epikoi.net>
Date: Sun, 05 Jul 2009 11:26:56 +0200
From: Christian Caleca <christian.caleca@epikoi.net>
User-Agent: Thunderbird 2.0.0.22 (X11/20090608)
MIME-Version: 1.0
To: Christian Caleca <christian.caleca@epikoi.net>
Subject: Objet =?UTF-8?B?YWNjZW50dcOp?=

 Observez la sale tête que prend ls "Subject:", juste parce qu'il y a
un accent dedans.
Le texte de l'objet étant tout simplement :
« Objet accentué »

Content-Type: multipart/mixed;
 boundary="------------000609020506050905050804"

This is a multi-part message in MIME format.
--------------000609020506050905050804
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit

Et texte utilisant des symboles « spéciaux » confiés à UTF-8
  - le copyright : ©
  - le « trade mark » : ™
Le tout suivi d'une image gif

--------------000609020506050905050804
Content-Type: image/png;
 name="logogrenouille.png"
Content-Transfer-Encoding: base64
Content-Disposition: inline;
 filename="logogrenouille.png"

iVBORw0KGgoAAAANSUhEUgAAABkAAAAZCAYAAADE6YVjAAAABHNCSVQICAgIfAhkiAAAAAlw
...
DH5ZAZkYjPyIry4bVPWnSb2mgoyCKiTCKSnh3tA6xJgPQTdgA0OQ/Q5lmEEdplpVO6Y0Gn9A
UwXwkkTpkzA+Vq56JMY/wI7p7P8P7DhAtpxfH8cAAAAASUVORK5CYII=
--------------000609020506050905050804--
Il y a ici plusieurs choses intéressantes à noter :

  • l'abominable pirouette utilisée à cause de l'unique lettre accentuée dans l'objet ;
  • le texte du message est annoncé comme étant codé en UTF-8, et il n'y a effectivement aucun artifice employé sur les caractères spéciaux, pas de « quoted-printable » ni de « bases64 » ici ;
  • dans la partie « image », la directive MIME Content-Disposition: inline; indique que l'image doit être affichée dans le corps du message (inline) et non comme une pièce jointe.

Note pour les e-mails

Selon toute logique, le codage Base64 devrait pouvoir être universellement exploité dans la messagerie, puis qu'il permet à coup sûr de transporter correctement le message codé (sur 7 bits) et définit complètement la table de codage ASCII quelque soit l'alphabet utilisé par l'auteur. Cependant ESMTP prévoit de transporter tout type d'encodage sur 8 bits. Associée à MIME, cette fonctionnalité permet, pour du texte, de ne plus avoir à utiliser de conversion 8 bits –> 7 bits. Encore faut-il que le destinataire dispose d'un MUA capable de gérer de tels messages.

Au final, nous pouvons observer tout un tas d'attitudes plus ou moins originales et plus ou moins logiques, dans la façon qu'ont les divers MUA de gérer les caractères non US-ASCII et les pièces jointes.

La mode étant aux e-mails en html, nous pouvons trouver assez souvent

Content-Type: text/html;
	charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
Content-Type: text/html;
	charset="windows-1252"
Content-Transfer-Encoding: quoted-printable

(inutile de préciser l'origine du MUA responsable).

Content-Type: text/plain;
	charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable

Iso-8859-1 est encodé en quoted-printable

Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

Ici, c'est UTF-8 qui est utilisé, mais encodé également en quoted-printable

Content-Transfer-Encoding: binary
Content-Type: text/plain;
     charset="iso-8859-1"

Ici, c'est plus simple, de l'iso-8859-1 sans encodage particulier

Je n'ai pas d'exemple sous la main, mais il est bien sûr tout à fait possible de faire :

Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: base64

Vous le voyez, arriver à lire correctement un message d'apparence tout à fait anodine peut nécessiter de passer par d'énormes usines à gaz.

MIME et HTTP

Nous en avons déjà un exemple dans le chapitre HTTP, pour transporter une image gif dans une page html. Mais dans ce cas, il n'y a pas de codage (type Base64 ou quoted-printable), les octets sont brutalement transportés par le protocole. MIME sert juste à définir le type de document.

Voici juste un exemple, où HTTP va transporter un document MS Word. La manipulation est faite avec Internet Explorer 6 et Mozilla 1.1 sur une plateforme Windows disposant de MS Word. Un sniffeur regarde ce qu'il se passe au niveau HTTP.

Comme vous pouvez le constater, cet exemple est déjà ancien, mais bien que les outils soient désormais obsolètes, la démonstration reste valable.

Avec Internet Explorer 6

Frame 4 (387 on wire, 387 captured)
     ...
Internet Protocol, Src Addr: 192.168.0.10, Dst Addr: 192.168.0.253
     ...
Hypertext Transfer Protocol
    GET /odj.doc HTTP/1.1\r\n
    Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, 
            application/vnd.ms-powerpoint, application/vnd.ms-excel,
            application/msword, */*\r\n

    Nous le savons, IE6 accepte explicitement les fichiers au format MS Office si ce dernier est installé.

    Accept-Language: fr\r\n
    Accept-Encoding: gzip, deflate\r\n
    User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)\r\n
    Host: linux.maison.mrs\r\n
    Connection: Keep-Alive\r\n
    \r\n

Frame 6 (1514 on wire, 1514 captured)
    ...
Internet Protocol, Src Addr: 192.168.0.253, Dst Addr: 192.168.0.10
    ...
Hypertext Transfer Protocol
    HTTP/1.1 200 OK\r\n
    Date: Sat, 09 Nov 2002 09:32:41 GMT\r\n
    Server: Apache-AdvancedExtranetServer/1.3.26 (Mandrake Linux/6.1mdk) 
            auth_ldap/1.6.0 mod_ssl/2.8.10 OpenSSL/0.9.6g PHP/4.2.3\r\n
    Last-Modified: Thu, 06 Jul 2000 15:07:29 GMT\r\n
    ETag: "57d5a-7800-3964a0b1"\r\n
    Accept-Ranges: bytes\r\n
    Content-Length: 30720\r\n
    Keep-Alive: timeout=15, max=100\r\n
    Connection: Keep-Alive\r\n
    Content-Type: application/msword\r\n
    \r\n

    Apache connait le type MIME msword et signale le type de contenu, puis, commence à envoyer les données.

Data (1067 bytes)
0000  d0 cf 11 e0 a1 b1 1a e1 00 00 00 00 00 00 00 00   ................
0010  00 00 00 00 00 00 00 00 3e 00 03 00 fe ff 09 00   ........>.......
...
    Les octets surlignés montrent à l'évidence que HTTP transporte sur 8 bits
Une fois la réception terminée, Internet Explorer va afficher directement le document, en utilisant MS Word comme « plug-in ».

Avec Mozilla 1.1

Frame 6 (534 on wire, 534 captured)
    ...
Internet Protocol, Src Addr: 192.168.0.10, Dst Addr: 192.168.0.253
    ...
Hypertext Transfer Protocol
    GET /odj.doc HTTP/1.1\r\n
    Host: linux.maison.mrs\r\n
    User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.0; en-US; rv:1.1) 
                Gecko/20020826\r\n
    Accept: text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,
            text/plain;q=0.8,video/x-mng,image/png,image/jpeg,image/gif;q=0.2,
            text/css,*/*;q=0.1\r\n

    Mozilla ne connaît pas quant à lui les formats Microsoft.
    Il accepte cependant tout type de document (*/*).

    Accept-Language: fr-fr, en-us;q=0.66, en;q=0.33\r\n
    Accept-Encoding: gzip, deflate, compress;q=0.9\r\n
    Accept-Charset: ISO-8859-1, utf-8;q=0.66, *;q=0.66\r\n

    Plus respectueux de HTTP, il indique les jeux de caractères qu'il préfère
    iso-8859-1 (latin-1) d'abord, utf-8 (unicode) ensuite, * (n'importe quoi) enfin.

    Keep-Alive: 300\r\n
    Connection: keep-alive\r\n
    \r\n

Frame 8 (1514 on wire, 1514 captured)
    ...
Internet Protocol, Src Addr: 192.168.0.253, Dst Addr: 192.168.0.10
    ...
Hypertext Transfer Protocol
    HTTP/1.1 200 OK\r\n
    Date: Sat, 09 Nov 2002 09:35:06 GMT\r\n
    Server: Apache-AdvancedExtranetServer/1.3.26 (Mandrake Linux/6.1mdk) 
            auth_ldap/1.6.0 mod_ssl/2.8.10 OpenSSL/0.9.6g PHP/4.2.3\r\n
    Last-Modified: Thu, 06 Jul 2000 15:07:29 GMT\r\n
    ETag: "57d5a-7800-3964a0b1"\r\n
    Accept-Ranges: bytes\r\n
    Content-Length: 30720\r\n
    Keep-Alive: timeout=15, max=100\r\n
    Connection: Keep-Alive\r\n
    Content-Type: application/msword\r\n
    \r\n

Data (1067 bytes)
0000  d0 cf 11 e0 a1 b1 1a e1 00 00 00 00 00 00 00 00   ................
0010  00 00 00 00 00 00 00 00 3e 00 03 00 fe ff 09 00   ........>.......

Rien de changé de ce côté là. Mozilla, une fois le fichier reçu proposera de l'enregistrer ou de l'afficher en démarrant MS Word, comme une application séparée.

Anecdotes diverses

Il est souvent d'usage d'attribuer un suffixe correspondant à un type de fichier donné. Les images au format jpeg sont par exemple suffixées par .jpg ou encore .jpeg ou .jpe. Il peut être intéressant de déduite le type MIME du suffixe d'un fichier. Ainsi, sur une distribution GNU/Linux (ici Ubuntu 9.04, mais aussi Debian et sans doutes ses autres dérivées), il existe un fichier /etc/mime.types'' créé dans ce but. En voici le contenu :

###############################################################################
#
#  MIME-TYPES and the extensions that represent them
#
#  This file is part of the "mime-support" package.  Please send email (not a
#  bug report) to mime-support@packages.debian.org if you would like new types
#  and/or extensions to be added.
#
#  The reason that all types are managed by the mime-support package instead
#  allowing individual packages to install types in much the same way as they
#  add entries in to the mailcap file is so these types can be referenced by
#  other programs (such as a web server) even if the specific support package
#  for that type is not installed.
#
#  Users can add their own types if they wish by creating a ".mime.types"
#  file in their home directory.  Definitions included there will take
#  precedence over those listed here.
#
#  Note: Compression schemes like "gzip", "bzip", and "compress" are not
#  actually "mime-types".  They are "encodings" and hence must _not_ have
#  entries in this file to map their extensions.  The "mime-type" of an
#  encoded file refers to the type of data that has been encoded, not the
#  type of encoding.
#
###############################################################################


application/activemessage
application/andrew-inset                        ez
application/annodex                             anx
application/applefile
application/atom+xml                            atom
application/atomcat+xml                         atomcat
application/atomserv+xml                        atomsrv
application/atomicmail
application/batch-SMTP
application/beep+xml
application/bbolin                              lin
application/cals-1840
application/cap                                 cap pcap
application/commonground
application/cu-seeme                            cu
application/cybercash
application/davmount+xml                        davmount
application/dca-rft
application/dec-dx
application/docbook+xml
application/dsptype                             tsp
application/dvcs
application/ecmascript                          es
application/edi-consent
application/edi-x12
application/edifact
application/eshop
application/font-tdpfr
application/futuresplash                        spl
application/ghostview
application/hta                                 hta
application/http
application/hyperstudio
application/iges
application/index
application/index.cmd
application/index.obj
application/index.response
application/index.vnd
application/iotp
application/ipp
application/isup
application/java-archive                        jar
application/java-serialized-object              ser
application/java-vm                             class
application/javascript                          js
application/m3g                                 m3g
application/mac-binhex40                        hqx
application/mac-compactpro                      cpt
application/macwriteii
application/marc
application/mathematica                         nb nbp
application/ms-tnef
application/msaccess                            mdb
application/msword                              doc dot
application/news-message-id
application/news-transmission
application/ocsp-request
application/ocsp-response
application/octet-stream                        bin
application/oda                                 oda
application/ogg                                 ogx
application/parityfec
application/pdf                                 pdf
application/pgp-encrypted
application/pgp-keys                            key
application/pgp-signature                       pgp
application/pics-rules                          prf
application/pkcs10
application/pkcs7-mime
application/pkcs7-signature
application/pkix-cert
application/pkix-crl
application/pkixcmp
application/postscript                          ps ai eps espi epsf eps2 eps3
application/prs.alvestrand.titrax-sheet
application/prs.cww
application/prs.nprend
application/qsig
application/rar                                 rar
application/rdf+xml                             rdf
application/remote-printing
application/riscos
application/rss+xml                             rss
application/rtf                                 rtf
application/sdp
application/set-payment
application/set-payment-initiation
application/set-registration
application/set-registration-initiation
application/sgml
application/sgml-open-catalog
application/sieve
application/slate
application/smil                                smi smil
application/timestamp-query
application/timestamp-reply
application/vemmi
application/whoispp-query
application/whoispp-response
application/wita
application/x400-bp
application/xhtml+xml                           xhtml xht
application/xml                                 xml xsl xsd
application/xml-dtd
application/xml-external-parsed-entity
application/xspf+xml                            xspf
application/zip                                 zip
application/vnd.3M.Post-it-Notes
application/vnd.accpac.simply.aso
application/vnd.accpac.simply.imp
application/vnd.acucobol
application/vnd.aether.imp
application/vnd.anser-web-certificate-issue-initiation
application/vnd.anser-web-funds-transfer-initiation
application/vnd.audiograph
application/vnd.bmi
application/vnd.businessobjects
application/vnd.canon-cpdl
application/vnd.canon-lips
application/vnd.cinderella                      cdy
application/vnd.claymore
application/vnd.commerce-battelle
application/vnd.commonspace
application/vnd.comsocaller
application/vnd.contact.cmsg
application/vnd.cosmocaller
application/vnd.ctc-posml
application/vnd.cups-postscript
application/vnd.cups-raster
application/vnd.cups-raw
application/vnd.cybank
application/vnd.dna
application/vnd.dpgraph
application/vnd.dxr
application/vnd.ecdis-update
application/vnd.ecowin.chart
application/vnd.ecowin.filerequest
application/vnd.ecowin.fileupdate
application/vnd.ecowin.series
application/vnd.ecowin.seriesrequest
application/vnd.ecowin.seriesupdate
application/vnd.enliven
application/vnd.epson.esf
application/vnd.epson.msf
application/vnd.epson.quickanime
application/vnd.epson.salt
application/vnd.epson.ssf
application/vnd.ericsson.quickcall
application/vnd.eudora.data
application/vnd.fdf
application/vnd.ffsns
application/vnd.flographit
application/vnd.framemaker
application/vnd.fsc.weblaunch
application/vnd.fujitsu.oasys
application/vnd.fujitsu.oasys2
application/vnd.fujitsu.oasys3
application/vnd.fujitsu.oasysgp
application/vnd.fujitsu.oasysprs
application/vnd.fujixerox.ddd
application/vnd.fujixerox.docuworks
application/vnd.fujixerox.docuworks.binder
application/vnd.fut-misnet
application/vnd.google-earth.kml+xml            kml
application/vnd.google-earth.kmz                kmz
application/vnd.grafeq
application/vnd.groove-account
application/vnd.groove-identity-message
application/vnd.groove-injector
application/vnd.groove-tool-message
application/vnd.groove-tool-template
application/vnd.groove-vcard
application/vnd.hhe.lesson-player
application/vnd.hp-HPGL
application/vnd.hp-PCL
application/vnd.hp-PCLXL
application/vnd.hp-hpid
application/vnd.hp-hps
application/vnd.httphone
application/vnd.hzn-3d-crossword
application/vnd.ibm.MiniPay
application/vnd.ibm.afplinedata
application/vnd.ibm.modcap
application/vnd.informix-visionary
application/vnd.intercon.formnet
application/vnd.intertrust.digibox
application/vnd.intertrust.nncp
application/vnd.intu.qbo
application/vnd.intu.qfx
application/vnd.irepository.package+xml
application/vnd.is-xpr
application/vnd.japannet-directory-service
application/vnd.japannet-jpnstore-wakeup
application/vnd.japannet-payment-wakeup
application/vnd.japannet-registration
application/vnd.japannet-registration-wakeup
application/vnd.japannet-setstore-wakeup
application/vnd.japannet-verification
application/vnd.japannet-verification-wakeup
application/vnd.koan
application/vnd.lotus-1-2-3
application/vnd.lotus-approach
application/vnd.lotus-freelance
application/vnd.lotus-notes
application/vnd.lotus-organizer
application/vnd.lotus-screencam
application/vnd.lotus-wordpro
application/vnd.mcd
application/vnd.mediastation.cdkey
application/vnd.meridian-slingshot
application/vnd.mif
application/vnd.minisoft-hp3000-save
application/vnd.mitsubishi.misty-guard.trustweb
application/vnd.mobius.daf
application/vnd.mobius.dis
application/vnd.mobius.msl
application/vnd.mobius.plc
application/vnd.mobius.txf
application/vnd.motorola.flexsuite
application/vnd.motorola.flexsuite.adsi
application/vnd.motorola.flexsuite.fis
application/vnd.motorola.flexsuite.gotap
application/vnd.motorola.flexsuite.kmr
application/vnd.motorola.flexsuite.ttc
application/vnd.motorola.flexsuite.wem
application/vnd.mozilla.xul+xml                 xul
application/vnd.ms-artgalry
application/vnd.ms-asf
application/vnd.ms-excel                        xls xlb xlt
application/vnd.ms-lrm
application/vnd.ms-pki.seccat                   cat
application/vnd.ms-pki.stl                      stl
application/vnd.ms-powerpoint                   ppt pps
application/vnd.ms-project
application/vnd.ms-tnef
application/vnd.ms-works
application/vnd.mseq
application/vnd.msign
application/vnd.music-niff
application/vnd.musician
application/vnd.netfpx
application/vnd.noblenet-directory
application/vnd.noblenet-sealer
application/vnd.noblenet-web
application/vnd.novadigm.EDM
application/vnd.novadigm.EDX
application/vnd.novadigm.EXT
application/vnd.oasis.opendocument.chart                        odc
application/vnd.oasis.opendocument.database                     odb
application/vnd.oasis.opendocument.formula                      odf
application/vnd.oasis.opendocument.graphics                     odg
application/vnd.oasis.opendocument.graphics-template            otg
application/vnd.oasis.opendocument.image                        odi
application/vnd.oasis.opendocument.presentation                 odp
application/vnd.oasis.opendocument.presentation-template        otp
application/vnd.oasis.opendocument.spreadsheet                  ods
application/vnd.oasis.opendocument.spreadsheet-template         ots
application/vnd.oasis.opendocument.text                         odt
application/vnd.oasis.opendocument.text-master                  odm
application/vnd.oasis.opendocument.text-template                ott
application/vnd.oasis.opendocument.text-web                     oth
application/vnd.osa.netdeploy
application/vnd.palm
application/vnd.pg.format
application/vnd.pg.osasli
application/vnd.powerbuilder6
application/vnd.powerbuilder6-s
application/vnd.powerbuilder7
application/vnd.powerbuilder7-s
application/vnd.powerbuilder75
application/vnd.powerbuilder75-s
application/vnd.previewsystems.box
application/vnd.publishare-delta-tree
application/vnd.pvi.ptid1
application/vnd.pwg-xhtml-print+xml
application/vnd.rapid
application/vnd.rim.cod                         cod
application/vnd.s3sms
application/vnd.seemail
application/vnd.shana.informed.formdata
application/vnd.shana.informed.formtemplate
application/vnd.shana.informed.interchange
application/vnd.shana.informed.package
application/vnd.smaf                            mmf
application/vnd.sss-cod
application/vnd.sss-dtf
application/vnd.sss-ntf
application/vnd.stardivision.calc               sdc
application/vnd.stardivision.chart              sds
application/vnd.stardivision.draw               sda
application/vnd.stardivision.impress            sdd
application/vnd.stardivision.math               sdf
application/vnd.stardivision.writer             sdw
application/vnd.stardivision.writer-global      sgl
application/vnd.street-stream
application/vnd.sun.xml.calc                    sxc
application/vnd.sun.xml.calc.template           stc
application/vnd.sun.xml.draw                    sxd
application/vnd.sun.xml.draw.template           std
application/vnd.sun.xml.impress                 sxi
application/vnd.sun.xml.impress.template        sti
application/vnd.sun.xml.math                    sxm
application/vnd.sun.xml.writer                  sxw
application/vnd.sun.xml.writer.global           sxg
application/vnd.sun.xml.writer.template         stw
application/vnd.svd
application/vnd.swiftview-ics
application/vnd.symbian.install                 sis
application/vnd.triscape.mxs
application/vnd.trueapp
application/vnd.truedoc
application/vnd.tve-trigger
application/vnd.ufdl
application/vnd.uplanet.alert
application/vnd.uplanet.alert-wbxml
application/vnd.uplanet.bearer-choice
application/vnd.uplanet.bearer-choice-wbxml
application/vnd.uplanet.cacheop
application/vnd.uplanet.cacheop-wbxml
application/vnd.uplanet.channel
application/vnd.uplanet.channel-wbxml
application/vnd.uplanet.list
application/vnd.uplanet.list-wbxml
application/vnd.uplanet.listcmd
application/vnd.uplanet.listcmd-wbxml
application/vnd.uplanet.signal
application/vnd.vcx
application/vnd.vectorworks
application/vnd.vidsoft.vidconference
application/vnd.visio                           vsd
application/vnd.vividence.scriptfile
application/vnd.wap.sic
application/vnd.wap.slc
application/vnd.wap.wbxml                       wbxml
application/vnd.wap.wmlc                        wmlc
application/vnd.wap.wmlscriptc                  wmlsc
application/vnd.webturbo
application/vnd.wordperfect                     wpd
application/vnd.wordperfect5.1                  wp5
application/vnd.wrq-hp3000-labelled
application/vnd.wt.stf
application/vnd.xara
application/vnd.xfdl
application/vnd.yellowriver-custom-menu
application/x-123                               wk
application/x-7z-compressed                     7z
application/x-abiword                           abw
application/x-apple-diskimage                   dmg
application/x-bcpio                             bcpio
application/x-bittorrent                        torrent
application/x-cab                               cab
application/x-cbr                               cbr
application/x-cbz                               cbz
application/x-cdf                               cdf cda
application/x-cdlink                            vcd
application/x-chess-pgn                         pgn
application/x-core
application/x-cpio                              cpio
application/x-csh                               csh
application/x-debian-package                    deb udeb
application/x-director                          dcr dir dxr
application/x-dms                               dms
application/x-doom                              wad
application/x-dvi                               dvi
application/x-httpd-eruby                       rhtml
application/x-executable
application/x-font                              pfa pfb gsf pcf pcf.Z
application/x-freemind                          mm
application/x-futuresplash                      spl
application/x-gnumeric                          gnumeric
application/x-go-sgf                            sgf
application/x-graphing-calculator               gcf
application/x-gtar                              gtar tgz taz
application/x-hdf                               hdf
application/x-httpd-php                         phtml pht php
application/x-httpd-php-source                  phps
application/x-httpd-php3                        php3
application/x-httpd-php3-preprocessed           php3p
application/x-httpd-php4                        php4
application/x-ica                               ica
application/x-info                              info
application/x-internet-signup                   ins isp
application/x-iphone                            iii
application/x-iso9660-image                     iso
application/x-jam                               jam
application/x-java-applet
application/x-java-bean
application/x-java-jnlp-file                    jnlp
application/x-jmol                              jmz
application/x-kchart                            chrt
application/x-kdelnk
application/x-killustrator                      kil
application/x-koan                              skp skd skt skm
application/x-kpresenter                        kpr kpt
application/x-kspread                           ksp
application/x-kword                             kwd kwt
application/x-latex                             latex
application/x-lha                               lha
application/x-lyx                               lyx
application/x-lzh                               lzh
application/x-lzx                               lzx
application/x-maker                             frm maker frame fm fb book fbdoc
application/x-mif                               mif
application/x-ms-wmd                            wmd
application/x-ms-wmz                            wmz
application/x-msdos-program                     com exe bat dll
application/x-msi                               msi
application/x-netcdf                            nc
application/x-ns-proxy-autoconfig               pac dat
application/x-nwc                               nwc
application/x-object                            o
application/x-oz-application                    oza
application/x-pkcs7-certreqresp                 p7r
application/x-pkcs7-crl                         crl
application/x-python-code                       pyc pyo
application/x-qgis                              qgs shp shx
application/x-quicktimeplayer                   qtl
application/x-redhat-package-manager            rpm
application/x-ruby                              rb
application/x-rx
application/x-sh                                sh
application/x-shar                              shar
application/x-shellscript
application/x-shockwave-flash                   swf swfl
application/x-stuffit                           sit sitx
application/x-sv4cpio                           sv4cpio
application/x-sv4crc                            sv4crc
application/x-tar                               tar
application/x-tcl                               tcl
application/x-tex-gf                            gf
application/x-tex-pk                            pk
application/x-texinfo                           texinfo texi
application/x-trash                             ~ % bak old sik
application/x-troff                             t tr roff
application/x-troff-man                         man
application/x-troff-me                          me
application/x-troff-ms                          ms
application/x-ustar                             ustar
application/x-videolan
application/x-wais-source                       src
application/x-wingz                             wz
application/x-x509-ca-cert                      crt
application/x-xcf                               xcf
application/x-xfig                              fig
application/x-xpinstall                         xpi

audio/32kadpcm
audio/3gpp
audio/amr                                       amr
audio/amr-wb                                    awb
audio/amr                                       amr
audio/amr-wb                                    awb
audio/annodex                                   axa
audio/basic                                     au snd
audio/flac                                      flac
audio/g.722.1
audio/l16
audio/midi                                      mid midi kar
audio/mp4a-latm
audio/mpa-robust
audio/mpeg                                      mpga mpega mp2 mp3 m4a
audio/mpegurl                                   m3u
audio/ogg                                       oga ogg spx
audio/parityfec
audio/prs.sid                                   sid
audio/telephone-event
audio/tone
audio/vnd.cisco.nse
audio/vnd.cns.anp1
audio/vnd.cns.inf1
audio/vnd.digital-winds
audio/vnd.everad.plj
audio/vnd.lucent.voice
audio/vnd.nortel.vbk
audio/vnd.nuera.ecelp4800
audio/vnd.nuera.ecelp7470
audio/vnd.nuera.ecelp9600
audio/vnd.octel.sbc
audio/vnd.qcelp
audio/vnd.rhetorex.32kadpcm
audio/vnd.vmx.cvsd
audio/x-aiff                                    aif aiff aifc
audio/x-gsm                                     gsm
audio/x-mpegurl                                 m3u
audio/x-ms-wma                                  wma
audio/x-ms-wax                                  wax
audio/x-pn-realaudio-plugin
audio/x-pn-realaudio                            ra rm ram
audio/x-realaudio                               ra
audio/x-scpls                                   pls
audio/x-sd2                                     sd2
audio/x-wav                                     wav

chemical/x-alchemy                              alc
chemical/x-cache                                cac cache
chemical/x-cache-csf                            csf
chemical/x-cactvs-binary                        cbin cascii ctab
chemical/x-cdx                                  cdx
chemical/x-cerius                               cer
chemical/x-chem3d                               c3d
chemical/x-chemdraw                             chm
chemical/x-cif                                  cif
chemical/x-cmdf                                 cmdf
chemical/x-cml                                  cml
chemical/x-compass                              cpa
chemical/x-crossfire                            bsd
chemical/x-csml                                 csml csm
chemical/x-ctx                                  ctx
chemical/x-cxf                                  cxf cef
#chemical/x-daylight-smiles                     smi
chemical/x-embl-dl-nucleotide                   emb embl
chemical/x-galactic-spc                         spc
chemical/x-gamess-input                         inp gam gamin
chemical/x-gaussian-checkpoint                  fch fchk
chemical/x-gaussian-cube                        cub
chemical/x-gaussian-input                       gau gjc gjf
chemical/x-gaussian-log                         gal
chemical/x-gcg8-sequence                        gcg
chemical/x-genbank                              gen
chemical/x-hin                                  hin
chemical/x-isostar                              istr ist
chemical/x-jcamp-dx                             jdx dx
chemical/x-kinemage                             kin
chemical/x-macmolecule                          mcm
chemical/x-macromodel-input                     mmd mmod
chemical/x-mdl-molfile                          mol
chemical/x-mdl-rdfile                           rd
chemical/x-mdl-rxnfile                          rxn
chemical/x-mdl-sdfile                           sd sdf
chemical/x-mdl-tgf                              tgf
#chemical/x-mif                                 mif
chemical/x-mmcif                                mcif
chemical/x-mol2                                 mol2
chemical/x-molconn-Z                            b
chemical/x-mopac-graph                          gpt
chemical/x-mopac-input                          mop mopcrt mpc zmt
chemical/x-mopac-out                            moo
chemical/x-mopac-vib                            mvb
chemical/x-ncbi-asn1                            asn
chemical/x-ncbi-asn1-ascii                      prt ent
chemical/x-ncbi-asn1-binary                     val aso
chemical/x-ncbi-asn1-spec                       asn
chemical/x-pdb                                  pdb ent
chemical/x-rosdal                               ros
chemical/x-swissprot                            sw
chemical/x-vamas-iso14976                       vms
chemical/x-vmd                                  vmd
chemical/x-xtel                                 xtel
chemical/x-xyz                                  xyz

image/cgm
image/g3fax
image/gif                                       gif
image/ief                                       ief
image/jpeg                                      jpeg jpg jpe
image/naplps
image/pcx                                       pcx
image/png                                       png
image/prs.btif
image/prs.pti
image/svg+xml                                   svg svgz
image/tiff                                      tiff tif
image/vnd.cns.inf2
image/vnd.djvu                                  djvu djv
image/vnd.dwg
image/vnd.dxf
image/vnd.fastbidsheet
image/vnd.fpx
image/vnd.fst
image/vnd.fujixerox.edmics-mmr
image/vnd.fujixerox.edmics-rlc
image/vnd.mix
image/vnd.net-fpx
image/vnd.svf
image/vnd.wap.wbmp                              wbmp
image/vnd.xiff
image/x-cmu-raster                              ras
image/x-coreldraw                               cdr
image/x-coreldrawpattern                        pat
image/x-coreldrawtemplate                       cdt
image/x-corelphotopaint                         cpt
image/x-icon                                    ico
image/x-jg                                      art
image/x-jng                                     jng
image/x-ms-bmp                                  bmp
image/x-photoshop                               psd
image/x-portable-anymap                         pnm
image/x-portable-bitmap                         pbm
image/x-portable-graymap                        pgm
image/x-portable-pixmap                         ppm
image/x-rgb                                     rgb
image/x-xbitmap                                 xbm
image/x-xpixmap                                 xpm
image/x-xwindowdump                             xwd

inode/chardevice
inode/blockdevice
inode/directory-locked
inode/directory
inode/fifo
inode/socket

message/delivery-status
message/disposition-notification
message/external-body
message/http
message/s-http
message/news
message/partial
message/rfc822                                  eml

model/iges                                      igs iges
model/mesh                                      msh mesh silo
model/vnd.dwf
model/vnd.flatland.3dml
model/vnd.gdl
model/vnd.gs-gdl
model/vnd.gtw
model/vnd.mts
model/vnd.vtu
model/vrml                                      wrl vrml

multipart/alternative
multipart/appledouble
multipart/byteranges
multipart/digest
multipart/encrypted
multipart/form-data
multipart/header-set
multipart/mixed
multipart/parallel
multipart/related
multipart/report
multipart/signed
multipart/voice-message

text/calendar                                   ics icz
text/css                                        css
text/csv                                        csv
text/directory
text/english
text/enriched
text/h323                                       323
text/html                                       html htm shtml
text/iuls                                       uls
text/mathml                                     mml
text/parityfec
text/plain                                      asc txt text pot brf
text/prs.lines.tag
text/rfc822-headers
text/richtext                                   rtx
text/rtf
text/scriptlet                                  sct wsc
text/t140
text/texmacs                                    tm ts
text/tab-separated-values                       tsv
text/uri-list
text/vnd.abc
text/vnd.curl
text/vnd.DMClientScript
text/vnd.flatland.3dml
text/vnd.fly
text/vnd.fmi.flexstor
text/vnd.in3d.3dml
text/vnd.in3d.spot
text/vnd.IPTC.NewsML
text/vnd.IPTC.NITF
text/vnd.latex-z
text/vnd.motorola.reflex
text/vnd.ms-mediapackage
text/vnd.sun.j2me.app-descriptor                jad
text/vnd.wap.si
text/vnd.wap.sl
text/vnd.wap.wml                                wml
text/vnd.wap.wmlscript                          wmls
text/x-bibtex                                   bib
text/x-boo                                      boo
text/x-c++hdr                                   h++ hpp hxx hh
text/x-c++src                                   c++ cpp cxx cc
text/x-chdr                                     h
text/x-component                                htc
text/x-crontab
text/x-csh                                      csh
text/x-csrc                                     c
text/x-dsrc                                     d
text/x-diff                                     diff patch
text/x-haskell                                  hs
text/x-java                                     java
text/x-literate-haskell                         lhs
text/x-makefile
text/x-moc                                      moc
text/x-pascal                                   p pas
text/x-pcs-gcd                                  gcd
text/x-perl                                     pl pm
text/x-python                                   py
text/x-scala                                    scala
text/x-server-parsed-html
text/x-setext                                   etx
text/x-sh                                       sh
text/x-tcl                                      tcl tk
text/x-tex                                      tex ltx sty cls
text/x-vcalendar                                vcs
text/x-vcard                                    vcf

video/3gpp                                      3gp
video/annodex                                   axv
video/dl                                        dl
video/dv                                        dif dv
video/fli                                       fli
video/gl                                        gl
video/mpeg                                      mpeg mpg mpe
video/mp4                                       mp4
video/quicktime                                 qt mov
video/mp4v-es
video/ogg                                       ogv
video/parityfec
video/pointer
video/vnd.fvt
video/vnd.motorola.video
video/vnd.motorola.videop
video/vnd.mpegurl                               mxu
video/vnd.mts
video/vnd.nokia.interleaved-multimedia
video/vnd.vivo
video/x-flv                                     flv
video/x-la-asf                                  lsf lsx
video/x-mng                                     mng
video/x-ms-asf                                  asf asx
video/x-ms-wm                                   wm
video/x-ms-wmv                                  wmv
video/x-ms-wmx                                  wmx
video/x-ms-wvx                                  wvx
video/x-msvideo                                 avi
video/x-sgi-movie                               movie
video/x-matroska                                mpv

x-conference/x-cooltalk                         ice

x-epoc/x-sisx-app                               sisx
x-world/x-vrml                                  vrm vrml wrl

Conclusions

Ce chapitre vous aura, je l'espère, aidé à mieux comprendre :

  • Comment le Net arrive tout de même plutôt bien à se sortir élégamment  du piège permanent que présente le transport de données au niveau mondial,
  • certains messages que vos navigateurs web peuvent vous envoyer lorsque vous visitez des sites étrangers,
  • pourquoi certains mails que vous pouvez recevoir peuvent être illisibles, et, peut-être, comment y remédier,
  • les précautions qu'il faut prendre pour avoir de bonnes chances d'envoyer des e-mails lisibles par le plus grand nombre…