Multipurpose Internet Mail Extensions
Il Multipurpose Internet Mail Extensions (MIME) è uno standard di Internet che definisce il formato delle e-mail. Una buona parte delle email che circolano su Internet sono spedite via SMTP in formato MIME. Le email sono così strettamente connesse agli standard SMTP e MIME, e sono spesso chiamate email SMTP/MIME.
Introduzione
Il protocollo base di Internet per la trasmissione di email, l'SMTP, supporta solo caratteri ASCII a 7 bit. Questo di fatto limita le email a messaggi che, quando trasmessi, includono solo i caratteri sufficienti per scrivere in un numero limitato di lingue, come ad esempio l'Inglese, e rende leggibile (ma non corretta) la rappresentazione in qualche altra lingua che fa uso dell'alfabeto latino. Il MIME definisce meccanismi atti a spedire altri tipi di informazione con l'email, potendo includere testo scritto in lingue diverse dall'Inglese usando codifiche diverse dall'ASCII, e contenuti binari a 8 bit come immagini, suoni e filmati, oppure programmi. Il MIME è anche un componente fondamentale dei protocolli di comunicazione come l'HTTP, il quale richiede che i dati siano trasmessi come messaggi simil-email, sebbene i messaggi non siano effettivamente email.
La traduzione dei messaggi, da e in formato MIME, è generalmente fatta in automatico dai client e dai server quando si spediscono o si ricevono email SMTP/MIME. Il formato base delle email su Internet è definito nell'RFC 2822, che è un aggiornamento del RFC 822. Questi standard specificano i formati conosciuti per rappresentare le intestazioni e il corpo delle email, come anche le regole attinenti l'utilizzo delle intestazioni quali "A:", "Oggetto", "Da" e "Data:". MIME definisce un insieme di intestazioni per inserire attributi aggiuntivi in un messaggio, come ad esempio il tipo del contenuto, e definisce un insieme di codifiche di trasferimento che possono essere usate per rappresentare dati binari a 8 bit utilizzando il charset ASCII a 7 bit. Lo standard MIME specifica anche regole per codificare caratteri non ASCII nelle intestazioni del messaggio email, come "Oggetto:", permettendo a queste intestazioni di contenere caratteri diversi dall'Inglese.
Lo standard MIME è espandibile. Le sue definizioni includono metodi per definire nuovi tipi di contenuto e altri attributi MIME. Uno degli obiettivi espliciti dello standard era di non esigere cambiamenti sui server preesistenti, e permettere alle email plain-text di funzionare in entrambe le direzioni con i client preesistenti. Questo obiettivo è stato raggiunto definendo gli attributi dei messaggi in formato MIME opzionali, impostandoli di default come non-MIME, in modo che i messaggi plain-text vengano correttamente letti dai client MIME. Inoltre, un semplice messaggio MIME viene interpretato correttamente anche da un client che non sopporta il MIME, sebbene abbia le intestazioni che il client non-MIME non sa come interpretare.
Estensibilità
Può sembrare sorprendente che la versione MIME sia formalmente rimasta 1.0 dal 1992 a oggi. In realtà, MIME esordisce mettendo a punto un meccanismo per specificare e descrivere il formato dei messaggi di posta elettronica (rfc1521). Lo standard definisce un processo di registrazione e un formato, fornendo in pratica delle linee guida per la messa a punto di nuove estensioni. In particolare viene caldeggiata l'introduzione di nuovi tipi di contenuto e di nuovi metodi di accesso. Viene anche suggerito l'uso del prefisso X- per i nomi non registrati.
I tipi di contenuto predefiniti sono sette. Cinque sono tipi elementari: testo, audio, immagine, video e applicazione, dove l'ultimo rappresenta il tipo di dati generato o utilizzato da un particolare software applicativo. Ogni tipo ha dei sottotipi, per cui abbiamo, per esempio, image/gif e application/zip. I due tipi composti sono messaggio e multipart. Anche questi hanno i loro sottotipi, per esempio message/rfc822 è usato per rinviare messaggi come allegati, mentre con multipart/alternative si può inviare un testo sia in versione normale sia in HTML.
I metodi di accesso sono introdotti allo scopo di inviare un riferimento al messaggio in luogo del messaggio stesso. Questo non è semplicemente un link in mezzo al testo, come spesso si usa. Lo standard prevede un tipo message/external-body corredato del tipo di accesso. I metodi d'accesso previsti vanno dalle varie forme di FTP, ai file locali o remoti, ai messaggi email su un server di posta (presumibilmente in cartelle IMAP condivise). Tra i parametri che corredano l'accesso ci sono le autorizzazioni e la data di scadenza.
Ovviamente non è pensabile che un normale client di posta, compatibile con la versione 1.0 di MIME, possa trattare tutte queste estensioni in modo appropriato. Il software è un processo in divenire e si chiama così proprio perché le regole non sono scolpite nel marmo. L'apparato di MIME è tale da permettere e regolare lo sviluppo di estensioni che saranno sviluppate via via. L'interfacciamento di segreterie telefoniche e fax potrebbe essere un esempio.
Voci correlate
Collegamenti esterni
- (EN) RFC 1426 SMTP Service Extension for 8bit-MIMEtransport.
- (EN) RFC 1847 Security Multiparts for MIME: Multipart/Signed and Multipart/Encrypted
- (EN) RFC 3156 MIME Security with OpenPGP
- (EN) RFC 2045 MIME Part One: Format of Internet Message Bodies.
- (EN) RFC 2046 MIME Part Two: Media Types.
- (EN) RFC 2047 MIME Part Three: Message Header Extensions for Non-ASCII Text.
- (EN) RFC 4288 MIME Part Four: Media Type Specifications and Registration Procedures.
- (EN) RFC 4289 MIME Part Four: Registration Procedures.
- (EN) RFC 2049 MIME Part Five: Conformance Criteria and Examples.
- (EN) RFC 2183 Communicating Presentation Information in Internet Messages: The Content-Disposition Header.
- (EN) RFC 2231 MIME Parameter Value and Encoded Word Extensions: Character Sets, Languages, and Continuations.
- (EN) RFC 2387 The MIME Multipart/Related Content-type.
- (EN) RFC 1521 Mechanisms for Specifying and Describing the Format of Internet Message Bodies
- (EN) A more detailed overview of MIME (1993)
- (EN) List of Character Sets
- (EN) Properly Configuring Server MIME Types
- (EN) W3 School's Multimedia MIME Reference