Protocollo Multipurpose Internet Mail Extensions

Comprendere le intestazioni MIME

Le intestazioni MIME contengono informazioni sul protocollo.

MIME-Version

Questo indica che il messaggio è formattato in MIME. Appare come:

MIME-Version: 1.0

Content-Type

Questo indica il tipo di contenuto del messaggio, dato come coppia tipo e sottotipo: text/plain, text/html, per esempio. Il tipo multipart può contenere testo, HTML, allegati, immagini, audio, video e così via.

Content-Type: multipart

Content-Transfer-Encoding

Indica se è usato uno schema di codifica binario-to-text sopra quello specificato dal content-type. Se presente, indica quale. Possiamo specificare qui i tipi di codifica 7-bit, 8-bit e binary.

Encoded-Word

Le intestazioni dei messaggi SMTP normalmente usano caratteri ASCII. I caratteri non ASCII devono utilizzare la sintassi MIME encoded word invece di una stringa letterale. Il formato è:

"=? charset ? encoding ? encoded text ?=".

Messaggi Multipart

Un messaggio MIME multipart contiene un delimitatore (boundary) nell’intestazione content-type. Questo delimitatore, che non deve comparire in nessuna delle parti, è inserito tra le parti e all’inizio e alla fine del corpo del messaggio, come segue:

MIME-version: 1.0


 Content-type: multipart/mixed; boundary="frontier"

This is a multi-part message in MIME format.

--frontier

Content-type: text/plain

This is the body of the message.

--frontier

Content-type: application/octet-stream

Content-transfer-encoding: base64

PGh0bWw+CiAgPGhlYWQ+CiAgPC9oZWFkPgogIDxib2R5PgogICAgPHA+VGhpcyBpcyB0aGUg

Ym9keSBvZiB0aGUgbWVzc2FnZS48L3A+CiAgPC9ib2R5Pgo8L2h0bWw+Cg==

--frontier--

Ogni parte è composta dalla propria intestazione di contenuto e da un corpo.

Sottotipi Multipart

Lo standard MIME definisce diversi sottotipi di messaggi multipart. Il sottotipo è specificato nell’intestazione "Content-Type" del messaggio complessivo.

Di seguito è riportato un elenco dei sottotipi più comunemente usati.

  • Mixed: multipart/mixed è usato per inviare file con diversi header "Content-Type" in linea. Se si inviano immagini o altri file facilmente leggibili, la maggior parte dei client mail li visualizzerà in linea.
  • Message: Una parte messaggio contiene un’email.
  • Digest: digest è un modo semplice per inviare più messaggi di testo. Il content-type predefinito per ogni parte è "message/rfc822".
  • Alternative: Il sottotipo alternative indica che ogni parte è una versione "alternativa" dello stesso (o simile) contenuto, ciascuna in un formato diverso indicato dall’intestazione "Content-Type".

Il multipart/alternative è più comunemente usato per le email con due parti, una di testo semplice (text/plain) e una HTML (text/html). La parte di testo semplice garantisce la retrocompatibilità mentre la parte HTML consente l’uso di formattazione e collegamenti ipertestuali. La maggior parte dei client email offre un’opzione per preferire il testo semplice rispetto all’HTML; questo è un esempio di come fattori locali possano influenzare la scelta dell’applicazione su quale parte "migliore" del messaggio mostrare.