Padrão MIME

Novembro 2017

O que é MIME

O MIME (Multipurpose Internet Mail Extensions) é um padrão que foi proposto pelos laboratórios Bell Communications em 1991 para aumentar as possibilidades limitadas do e-mail e, principalmente, permitir inserir documentos (imagens, sons, textos etc.) no mesmo. Ele foi definido inicialmente pelos RFC 1341 e 1342, que datam de junho de 1992.

O MIME propõe descrever, graças a cabeçalhos, o tipo de conteúdo da mensagem e a codificação utilizada. Graças a ele, o serviço de e-mail pode ter vários anexos numa mesma mensagem, um comprimento de mensagem ilimitado, usar outros caracteres (alfabetos) além do ASCII, usar textos enriquecidos (formatação das mensagens, fontes de caracteres, cores etc.), inserir anexos binários (executáveis, imagens, arquivos de áudio ou vídeo etc.) eventualmente com várias partes.

O MIME utiliza diretivas de cabeçalhos específicas para descrever o formato utilizado no corpo de uma mensagem, para que o cliente do serviço de mensagens possa interpretá-la corretamente: MIME-Version: é a versão do padrão MIME utilizada na mensagem. Atualmente, só existe a versão 1.0; Contente-type: descreve o tipo e os subtipos dos dados. Ele pode ter um parâmetro charset, separado por um ponto e vírgula, definindo o jogo de caracteres utilizado; Content-Transfer-Encoding: define a codificação utilizada no corpo da mensagem; Content-ID: representa um identificador único de parte da mensagem; Content-Description: dá informações complementares sobre o conteúdo da mensagem; Content-Disposition: define as configurações do anexo, principalmente, o nome associado ao arquivo graças ao atributo filename.

Quais são os principais tipos MIME

O tipo MIME utilizado no título Content-Type é utilizado, por um lado, para caracterizar os documentos anexados a uma mensagem. Um tipo MIME é constituído da seguinte maneira:


Content-type: tipo_mime_principal/sub_tipo_mime

Uma imagem GIF possuirá, por exemplo, o seguinte tipo MIME:

Content-type: image/gif

Os tipos principais de dados, chamados às vezes de tipos de dados discretos, são os seguintes:

texto: dados textuais legíveis.
text/rfc822 [RFC822]; text/plain [RFC2646]; text/html [RFC2854]
;

imagem: dados binários representando imagens numéricas
image/jpeg; image/gif; image/png
;

áudio: dados numéricos sonoros
audio/basic; audio/wav
;

vídeo: dados de vídeos
 video/mpeg
;

aplicação: outros dados binários
application/octet-stream; application/pdf
.

O tipo MIME também é utilizado na Web para caracterizar os documentos transferidos pelo protocolo HTTP. Assim, durante uma transação entre um servidor web e um navegador Internet, o servidor web envia, em primeiro lugar, o tipo MIME do arquivo enviado ao navegador, para que ele possa saber como apresentar o documento.

Quais são os formatos de codificação

Para transferir dados binários, o MIME propõe cinco formatos de codificação que podem ser utilizados na categoria Transfer-encoding: 7bit, formato de texto codificado em 7 bits (para as mensagens não acentuadas); 8bit, formato de texto em 8 bits; quoted-printable, formato recomendado para as mensagens que utilizam um alfabeto codificado em mais de 7 bits (presença de acentos, por exemplo); base64, formato recomendado para o envio de arquivos binários em anexo; binary, formato binário (desaconselhado).

Como o MIME é muito aberto, ele permite utilizar outros formatos de codificação, como o BinHex (formato proprietário que pertence à Apple) e o Uuencode.

Como codificar os títulos

O uso do titulo Transfer-encoding permite especificar um formato de codificação para o corpo da mensagem, mas não resolve o problema da codificação dos títulos em si (por exemplo, o assunto da mensagem).

Assim, para permitir codificar os títulos com alfabetos de mais de 7 bits e permitir, por exemplo, ter um assunto de e-mail acentuado, o padrão MIME propõe o seguinte formato:

=?charset?codificação?resultado?=

Charset representa o jogo de caractere utilizado, Codificação define a codificação desejada com dois valores possíveis: Q para quoted-printable e B para base64. E, o Resultado, o texto codificado de acordo com o método especificado.

Veja abaixo um exemplo de codificação Quoted-Printable com ‘Comment ça marche?’ como assunto da mensagem:

Subject: Comment =?ISO-8859-1?Q?=E7a_marche_=3F?=

Mensagens compostas

Graças ao tipo MIME ‘multipartes’, o padrão MIME permite definir mensagens compostas, ou seja, mensagens que incluem vários anexos, que podem ser encaixados. Para fazê-lo, o MIME permite um padrão chamado boundary (fronteira), que é uma cadeia arbitrária definida como um atributo na categoria Contente-Type:

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

Cada separador delimita uma porção do conteúdo que começa pelos títulos Content-Type e Content-Encoding. É fundamental que o valor deste separador não se encontre no conteúdo da mensagem.

Existem vários tipos de separadores: multipart/mixed, que define uma sequência de elementos múltiplos; multipart/alternative, que define diferentes alternativas para uma mesma informação, como uma mensagem em formato de texto e HTML. Se o cliente de serviço de mensagens puder mostrar mensagens com uma disposição e estiver configurado para fazê-lo, ele exibirá a versão HTML, se não, mostrará a versão de texto;multipart/parallel, que define dados presentes ao mesmo tempo (com som e imagem, por exemplo); multipart/signed, que define uma assinatura numérica para os dados da mensagem; multipart/related, que define os dados relacionados entre si.

Lista dos tipos MIME

Os tipos MIME são padronizados por um organismo chamado IANA (Internet Assigned Numbers Authority). Veja uma lista não exaustiva dos tipos MIME mais correntes:

Tipo MIME Tipo de arquivo Extensão associada
application/atom+xmlArquivos no formato ATOMatom
application/igesArquivos CASiges
application/javascriptArquivos Javascriptjs
application/dxfArquivos AutoCADdxf
application/mp4Ficheiros MPEG4mp4
application/igesFormato de troca CAO IGESigs,iges
application/octet-streamArquivos binários não interpretadosbin
application/mswordArquivos de burótica no formato Microsoft Worddoc
application/pdfArquivos Adobe Acrobatpdf
application/postscriptArquivos PostScriptai,eps,ps
application/rtfFormato de texto enriquecidortf
application/sgmlArquivos SGMLsgml
application/vnd.ms-excelArquivos de planilha no formato Microsoft Excelxls
application/vnd.ms-powerpointArquivos de Diaporama no formato Microsoft Powerpointppt
application/xmlArquivo XMLxml
application/x-tarArquivos comprimidos tartar
application/zipArquivos comprimidos ZIPman
audio/basicFicheiros de áudio básicosau,snd
audio/mpegArquivos de áudio MPEGmpg,mp3
audio/mp4Arquivos de áudio MPEG-4mp4
audio/x-aiffArquivos de áudio AIFFaif,aiff,aifc
audio/x-wavArquivos de áudio Wavewav
image/gifImagens gifman
image/jpegImagens JPEGjpg,jpeg,jpe
image/pngImagens PNGpng
image/tiffImagens Tifftiff,tif
image/x-portable-bitmapArquivos de Bitmap PBMpbm
image/x-portable-graymapArquivos de Graymap PBMpgm
imge/x-portable-pixmapArquivos de Pixmap PBMppm
multipart/x-zipArquivos de arquivo zipzip
multipart/x-gzipArquivos de arquivo GNU zipgz,gzip
text/cssFolha de estilocss
text/csvArquivos de texto com separação dos valorescsv
text/htmlArquivos HTMLhtm,html
text/plainArquivos de texto sem formataçãotxt,g,h,c,cc,hh,m,f90
text/richtextArquivos de texto enriquecidosrtx
text/rtfArquivos de texto no formato Rich Text Formatrtf
text/tab-separated-valueArquivos de texto com separação dos valorestsv
text/xmlArquivos XMLxml
video/h264Vídeos H.264h264
video/dvVídeos no formato DVdv
video/mpegVídeos MPEGmpeg,mpg,mpe
video/quicktimeVídeos QuickTimeqt,mov
video/msvideoVídeos Microsoft Windowsavi

MIME (Multipurpose Internet Mail Extensions)
MIME (Multipurpose Internet Mail Extensions)
MIME (Extensiones Multipropósito de Correo Internet)
MIME (Extensiones Multipropósito de Correo Internet)
MIME Standard (Multipurpose Internet Mail Extensions)
MIME Standard (Multipurpose Internet Mail Extensions)
Standard MIME (Multipurpose Internet Mail Extensions)
Standard MIME (Multipurpose Internet Mail Extensions)
Standard MIME (Multipurpose Internet Mail Extensions)
Standard MIME (Multipurpose Internet Mail Extensions)
Última modificação: 27 de setembro de 2017 às 15:14 por Pedro.CCM.
Este documento, intitulado 'Padrão MIME', está disponível sob a licença Creative Commons. Você pode copiar e/ou modificar o conteúdo desta página com base nas condições estipuladas pela licença. Não se esqueça de creditar o CCM (br.ccm.net) ao utilizar este artigo.