O MIME (Multipurpose Internet Mail Extensions) é um standard que proposto pelos laboratórios Bell Communications em 1991 para alargar as possibilidades limitadas do correio electrónico (mail) e nomeadamente permitir inserir documentos (imagens, sons, texto,…) numa mensagem. Foi definido inicialmente pelos RFC 1341 e 1342, que datam de Junho 1992.
O MIME propõe descrever, graças a cabeçalhos, o tipo de conteúdo da mensagem e a codificação utilizada.
O MIME confere ao serviço de mensagens as seguintes funcionalidades:
O MIME utiliza directivas de rubrica específicas para descrever o formato utilizado no corpo de uma mensagem, para permitir ao cliente de serviço de mensagens poder interpretá-la correctamente:
O tipo MIME, utilizado na rubrica Content-Type, é utilizado por um lado para caracterizar os documentos ligados a uma mensagem. Um tipo MIME é constituído da seguinte forma:
Content-type: type_MIME_principal/sob_type_MIMO
Content-type: image/gif
Os tipos principais de dados, chamados às vezes de “tipos de dados discretos”, são os seguintes:
O tipo MIME é utilizado igualmente na Web para caracterizar os documentos transferidos pelo protocolo HTTP. Assim, aquando de uma transacção entre um servidor web e um navegador Internet, o servidor web envia em primeiro lugar o tipo MIME do ficheiro enviado ao navegador, para que este último possa saber como apresentar o documento.
Para transferir dados binários, o MIME propõe cinco formatos de codificação que podem ser utilizados na rubrica Transfer-encoding :
O MIME, muito aberto, permite utilizar outros formatos de codificação, como os seguintes:
A utilização da rubrica Transfer-encoding permite precisar um formato de codificação para o corpo da mensagem, mas não resolve o problema da codificação das próprias rubricas (por exemplo, o assunto da mensagem).
Assim, para permitir codificar as rubricas com alfabetos de mais de 7 bits, e permitir por exemplo ter um assunto de mail acentuado, o standard MIME propõe o formato seguinte:
=?charset?encodage?resultat?=
Subject: Comment =?ISO-8859-1?Q?=E7a_marche_=3F?=
Graças ao tipo MIME “multipart”, o standard MIME permite definir mensagens compostas, isto é, mensagens que comportam vários anexos, eventualmente encaixados.
Para o efeito, o MIME permite definir um separador chamado boundary. Trata-se de uma cadeia arbitrária definida em atributo da rubrica Contente-Tipe:
Content-Type: multipart/mixed; boundary="------------020005090303070203010601"
Existem vários tipos de separadores:
Os tipos MIME são normalizados por um organismo chamado IANA (Internet Assigned Numbers Authority). Eis uma lista não exaustiva dos tipos MIME mais correntes
| Tipo MIME | Tipo de ficheiro | Extensão associada |
|---|---|---|
| aplicação/atom+xml | Ficheiros em formato ATOM | atom |
| aplicação/iges | Ficheiros CAS | iges |
| aplicação/javascript | Ficheiros Javascript | js |
| aplicação/dxf | Ficheiros AutoCAD | dxf |
| aplicação/mp4 | Ficheiros MPEG4 | mp4 |
| aplicação/iges | Formato de troca CAO IGES | igs,iges |
| aplicação/octet-stream | Ficheiros binários não interpretados | bin |
| aplicação/msword | Ficheiros buróticos em formato Microsoft Word | doc |
| aplicação/pdf | Ficheiros Adobe Acrobat | |
| aplicação/postscript | Ficheiros PostScript | ai,eps,ps |
| aplicação/rtf | Formato de texto enriquecido | rtf |
| aplicação/sgml | Ficheiros SGML | sgml |
| aplicação/vnd.ms-excel | Ficheiros folha de cálculo em formato Microsoft Excel | xls |
| aplicação/vnd.ms-powerpoint | Ficheiros diaporama em formato Microsoft Powerpoint | ppt |
| aplicação/xml | ficheiro XML | xml |
| aplicação/x-tar | Ficheiros comprimidos tar | tar |
| aplicação/zip | Ficheiros comprimidos ZIP | man |
| audio/basic | Ficheiros áudio básicos | au,snd |
| audio/mpeg | Ficheiros áudio MPEG | mpg,mp3 |
| audio/mp4 | Ficheiros áudio MPEG-4 | mp4 |
| audio/x-aiff | Ficheiros áudio AIFF | aif,aiff,aifc |
| audio/x-wav | Ficheiros áudio Wave | wav |
| imagem/gif | Imagens gif | man |
| imagem/jpeg | Imagens JPEG | jpg,jpeg,jpe |
| imagem/png | Imagens PNG | png |
| imagem/tiff | Imagens Tiff | tiff,tif |
| imagem/x-portable-bitmap | Fichiers Bitmap PBM | pbm |
| imagem/x-portable-graymap | Ficheiros Graymap PBM | pgm |
| imgem/x-portable-pixmap | Ficheiros Pixmap PBM | ppm |
| multipart/x-zip | Ficheiros arquivo zip | zip |
| multipart/x-gzip | Ficheiros arquivo GNU zip | gz,gzip |
| text/css | Folha de estilo | css |
| text/csv | Ficheiros texto com separação dos valores | csv |
| text/html | Ficheiros HTML | htm,html |
| text/plain | Ficheiros texto sem formatação | txt,g,h,c,cc,hh,m,f90 |
| text/richtext | Ficheiros texto enriquecidos | rtx |
| text/rtf | Ficheiros texto em formato Rich Text Format | rtf |
| text/tab-separated-value | Ficheiros texto com separação dos valores | tsv |
| text/xml | Ficheiros XML | xml |
| video/h264 | Vídeos H.264 | h264 |
| video/dv | Vídeos em formato DV | dv |
| video/mpeg | Vídeos MPEG | mpeg,mpg,mpe |
| video/quicktime | Vídeos QuickTime | qt,mov |
| video/msvideo | Vídeos Microsoft Windows | avi |