Standard MIME (Multipurpose Internet Mail Extensions)

Novembre 2016
MIME (Multipurpose Internet Mail Extensions) è uno standard proposto dai laboratori Bell Communications nel 1991 per estendere le possibilità limitate della posta elettronica (mail) e soprattutto per permettere di inserire dei documenti (immagini, suoni, testo, ecc.) in un messaggio. È definito all'origine dai RFC 1341 e 1342 del giugno 1992.


Introduzione al MIME

MIME propone di descrivere, grazie a delle intestazioni, il tipo di contenuto del messaggio e la codifica usata. MIME apporta alla messaggeria le seguenti funzionalità:

Possibilità d'avere più oggetti (allegati) in uno stesso messaggio;

Una lunghezza di messaggio illimitata;

L'uso di set di caratteri (alfabeti) oltre a quelli del codice ASCII;

L'uso di testi arricchiti (sotto forma di messaggi, tipi di carattere, colori, ecc.);

Degli allegati binari (eseguibili, immagini, file audio o video, ecc.), eventualmente composti da più parti.

MME usa delle direttive d'intestazione specifiche per descrivere il formato utilizzato nel corpo di un messaggio, per permettere al client di messaggeria di poterlo interpretare correttamente:

MIME-Version, si tratta della versione dello standard MIME usata nel messaggio. Attualmente esiste solo la versione 1.0;

Content-type, descrive il tipo e i sotto-tipi di dati. Può avere un parametro « charset », separato da un punto virtuale, che definisce il set di caratteri usati;

Content-Transfer-Encoding, definisce la decodifica usata nel corpo del messaggio;

Content-ID, rappresenta un identificativo unico di parte del messaggio;

Content-Description, fornisce delle informazioni complementari sul contenuto del messaggio;

Content-Disposition, definisce i parametri dell'allegato, soprattutto il nome associato al file attraverso l'attributo filename.

Principali Tipi MIME

Il type MIME, usato nell'intestazione Content-Type, è utilizzato per classificare i documenti allegati ad un messaggio. Un type MIME è costituito nel modo seguente:
Content-type: type_mime_principale/sotto_type_mime
Ad esempio, un'immagine GIF avrà il seguente type MIME:
Content-type: image/gif


I principali tipi di dati, detti talvolta, tipi di dati discreti, sono i seguenti:

Text, dati testuali leggibili. text/rfc822 [RFC822]; text/plain [RFC2646]; text/html [RFC2854] .

Image, dati binari che rappresentano delle immagini digitali image/jpeg; image/gif; image/png.

Audiom dati digitali sonori audio/basic; audio/wav.

Video, dati video, video/mpeg.

Application, altri dati binari, application/octet-stream; application/pdf.

Il type MIME è anche usato nel Web, per classificare i documenti trasferiti dal protocollo HTTP. Al momento di una transazione tra un server web e un navigatore internet, il server invia in primo luogo il type MIME del file inviato al navigatore, affinché quest'ultimo possa sapere come visualizzare il documento.

Formati di codifica

Per trasferire dei dati binari, MIME propone cinque formati di codifica utilizzabili nell'intestazione Transfer-encoding:


7bit, formato testo codificato su 7 bit (per i messaggi non accentuati);

8bit, formato test 8 bit;

quoted-printable, formato Quoted-Printable, raccomandato per i messaggi che usano un alfabeto codificato su più di 7 bit (ad esempio presenza di accenti);

base64, formato Base 64, raccomandato per l'invio di file binari in allegato;

binary, formato binario, sconsigliato.

MIME, essendo molto aperto, permette di usare altri formati di codifica come i seguenti:

BinHex (formato proprietario di Apple);

uuencode;

xxencode.

Decodifica dell'intestazione

L'uso dell'intestazione Transfer-encoding permette di precisare un formato di decodifica per il corpo del messaggio, ma non risolve il problema della decodifica delle intestazioni stesse (ad esempio l'oggetto del messaggio).

Così, per permettere di decodificare le intestazioni con degli alfabeti di più di 7 bit, e permettere ad esempio d'avere un oggetto della mail accentuato, lo standard MIME propone il formato seguente:
=?charset?decodifica?risultato?=


charset rappresenta il set di carattere usato;

decodifica definisce la decodifica voluta con due valori possibili:

Q per quoted-printable;

B per base64.

Risultato: testo codificato secondo il metodo specifico. Ecco qui sotto un esempio di codifica in Quoted-Printable con «Realtà» come oggetto del messaggio:
Subject: Realt =?ISO-8859-1?Q?=E0=3F?=

Messaggi compositi

Attraverso il type MIME multipart lo standard MIME permette di definire dei messaggi compositi, cioè dei messaggi con più allegati, eventualmente inclusi. Per fare questo, MIME permette di definire un separatore detto boundary. Si tratta di una catena arbitraria definita nell'attributo dell'intestazione Content-type:

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


Ogni separatore delimita un contenuto cominciando dalle intestazioni Content-Type e Content-Encoding. È essenziale che il valore di questo separatore non esista nel contenuto del messaggio. Esistono differenti tipi di separatore:

Multipart/mixed definisce una lista di più elementi;

Multipart/alternative definisce diverse alternative per una stessa informazione, ad esempio un messaggio in formato testo e HTML. Se il client di messaggeria è capace ed è configurato per la visualizzazione con un formato, visualizzerà la versione HTML, altrimenti userà la versione testo.

Multipart/parallel definisce dei dati presentati nello stesso momento (suono e immagine ad esempio);

Multipart/signed definisce una firma digitale per i dati del messaggio;

Multipart/related definisce delle informazioni legate fra loro.

Liste dei tipi MIME

I tipi MIME sono normalizzati da un organismo chiamato IANA (Internet Assigned Numbers Authority). Ecco una lista non esaustiva dei tipi MIME più diffusi

Tipo MIMETipo di fileEstensione associata
application/atom+xmlFile di formato ATOMatom
application/igesFileCASiges
application/javascriptFile Javascriptjs
application/dxfFile AutoCADdxf
application/mp4File MPEG4mp4
application/igesFormato di scambio CAO IGESigs,iges
application/octet-streamFile binari non interpretatibin
application/mswordFile da lavoro in formato Microsoft Worddoc
application/pdfFile Adobe Acrobatpdf
application/postscriptFile PostScriptai,eps,ps
application/rtfFormato di testo arricchitortf
application/sgmlFile SGMLsgml
application/vnd.ms-excelFile tabellari in formato Microsoft Excelxls
application/vnd.ms-powerpointFile presentazione in formato Microsoft Powerpointppt
application/xmlfichier XMLxml
application/x-tarFile compressi tartar
application/zipFile compressi ZIPman
audio/basicFile audio basiciau,snd
audio/mpegFile audio MPEGmpg,mp3
audio/mp4File audio MPEG-4mp4
audio/x-aiffFile audio AIFFaif,aiff,aifc
audio/x-wavFile audio Wavewav
image/gifImmagini gifman
image/jpegImmagini JPEGjpg,jpeg,jpe
image/pngImmagini PNGpng
image/tiffImmagini Tifftiff,tif
image/x-portable-bitmapFile Bitmap PBMpbm
image/x-portable-graymapFile Graymap PBMpgm
image/x-portable-pixmapFile Pixmap PBMppm
multipart/x-zipFile archivio zipzip
multipart/x-gzipFile archivio GNU zipgz,gzip
text/cssFogli di stilecss
text/csvFile di testo con separazione dei valoricsv
text/htmlFile HTMLhtm,html
text/plainFile di testo senza formattazione txt,g,h,c,cc,hh,m,f90
text/richtextFile di testo arricchitirtx
text/rtfFile di testo in formato Rich Text Formatrtf
text/tab-separated-valueFile di testo con separazione di valori tsv
text/xmlFiles XMLxml
video/h264Video H.264h264
video/dvVideo in formato DVdv
video/mpegVideo MPEGmpeg,mpg,mpe
video/quicktimeVideo QuickTimeqt,mov
video/msvideoVideo Microsoft Windowsavi

Ulteriori informazioni

Lista ufficiale dei tipi MIME (IANA - )

RFC principali:

RFC 2045, MIME Part One, Format of Internet Message Bodies;

RFC 2046, MIME Part Two, Media Types;

RFC 2047, MIME Part Three: Message Header Extensions for Non-ASCII Text;

RFC 2048, MIME Part Four: Registration Procedures;

RFC 2049, MIME Part Five: Conformance Criteria and Examples.

RFC annexes:

RFC 1524, The formal description of mailcap files. Mailcap files describe how to handle media types;

RFC 2015, MIME Security with Pretty Good Privacy (PGP);

RFC 2110, MIME E-mail Encapsulation of Aggregate Documents, such as HTML (MHTML);

RFC 2111, Content-ID and Message-ID Uniform Resource Locators;

RFC 2112, The MIME Multipart/Related Content-type;

RFC 2183, Defines the syntax and sematics of the "Content-Disposition" header to convey presentational information;

RFC 2184, MIME Parameter Value and Encoded Word Extensions: Character Sets, Languages, and Continuations.

Potrebbe anche interessarti :

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)
Padrão MIME (Multipurpose Internet Mail Extensions)
Padrão MIME (Multipurpose Internet Mail Extensions)
Il documento intitolato « Standard MIME (Multipurpose Internet Mail Extensions) » da CCM (it.ccm.net) è reso disponibile sotto i termini della licenza Creative Commons. È possibile copiare, modificare delle copie di questa pagina, nelle condizioni previste dalla licenza, finché questa nota appaia chiaramente.