MIME
Per poter allegare informazioni non testuali a un messaggio di posta elettronica è necessario operare una codifica del Body prima della trasmissione via SMTP.
La soluzione standard prevede che questo compito sia svolto dal Mail User Agent (MUA).
Il programma utente converte i dati di partenza nel set di caratteri ASCII ridotto attraverso una codifica prestabilita.
L’operazione inversa è effettuata al momento della apertura del messaggio da parte del programma utilizzato come MUA dall’utente destinatario.
Normalmente le informazioni non testuali sono inserite nel corpo del messaggio sotto forma di file allegati.
Le codifiche più diffuse per confezionare allegati sono la codifica UUEncode e la codifica Base64.
Il protocollo SMTP originale non prevede parametri per stabilire la natura dei dati contenuti all’interno del messaggio.
Per permettere al MUA di riconoscere la reale natura dei dati contenuti nel messaggio è stato perciò necessario definire una estensione standard nota come standard MIME (Multipurpose Internet Mail Extension).
Lo standard definisce una nuova serie di parametri aggiuntivi che si affiancano a quelli già definiti dalla RFC 822.
Il set di parametri definito dal protocollo MIME comprende le seguenti funzioni:
- Mime-Version, stabilisce la versione del protocollo MIME condivisa dagli utenti finali.
- Content-Type, stabilisce il formato dei dati trasportati all’interno della sezione Body.
- Content-Transfer-Encoding, stabilisce il tipo di trasformazione adottata per rappresentare i dati all’interno della sezione Body.
- Content-ID (opzionale), permette di stabilire l’identità delle entità coinvolte nel processo.
- Content-Description (opzionale), descrive in breve i dati trasportati.
Per ogni Content-Type sono definiti diversi sottotipi.
Una lista rappresentativa di Content-Type utilizzati con maggiore frequenza è indicata di seguito:
Type | Subtype | Descrizione |
Text | plain | Testo ASCII |
html | Testo con TAG HTML | |
Image | gif | Immagine GIF |
Video | mpeg | Video MPEG |
Application | octet-stream | Generico file binario |
Message | Rfc 822 | Corpo messaggio conforme a RFC 822 |
Multipart | mixed | Insieme di diversi MIME Type |
Le trasformazioni utilizzate per codificare le informazioni all’interno della sezione Body sono essenzialmente tre.
Il valore “7 bit” (default) indica che è previsto solo l’utilizzo di caratteri ASCII ridotti; il valore “base64” indica che i bit del file originale sono presi a gruppi di sei e trasformati in caratteri ASCII stampabili in accordo con la codifica Base64; il valore “binary” indica che il corpo del messaggio contiene dati binari senza alcuna formattazione in linee di testo.
L’ultima opzione potrebbe produrre un risultato non compatibile con alcuni server SMTP e pertanto da questi non trasferibile.
Perché il servizio di consegna vada a buon fine occorre ricordare che la trasformazione selezionata deve essere conforme alle funzionalità implementate dal sistema di trasporto (protocollo SMTP).
Le implementazioni standard di server e client SMTP garantiscono solo il trattamento di messaggi contenenti caratteri ASCII ridotti.