Messaggi MIME

Intestazioni MIME

Un messaggio MIME è composto da dati e metadati. I metadati MIME comprendono intestazioni in stile HTTP e delimitatori di limite MIME. Ciascuna intestazione è una coppia nome-valore separata da due punti su una riga. La sequenza ASCII<CR><LF> termina la riga. Una sequenza di queste intestazioni, denominata blocco di intestazione, termina con una riga vuota: <CR><LF><CR><LF>. E' possibile visualizzare qualsiasi intestazione successiva a tale stile HTTP in un documento MIME. In Campi di intestazione standard MIME viene descritto un numero di intestazioni MIME standard.

Content-Type

L'unica intestazione per la quale il programma di analisi MIME continua a esistere è l'intestazione Content-Type. In tale intestazione viene specificato il tipo di dati nel messaggio. Se il valore Content-Type inizia per "multipart", si tratta di un messaggio MIME multiplo. Per i messaggi multipli, è necessario che Content-Type includa un attributo di limite che fornisca il testo utilizzato per delimitare le parti del messaggio. Ciascuna parte MIME separata dispone del proprio campo Content-Type che specifica il tipo di dati nella parte. E' possibile che anche questa sia multipla, consentendo la nidificazione dei messaggi multipli. Le parti MIME con qualsiasi altro tipo di valori Content-Type vengono gestiti come dati BLOB.

Se un documento MIME viene inviato mediante HTTP, viene visualizzata l'intestazione Content-Type nel blocco di intestazione HTTP anziché nel contenuto del messaggio MIME. Per tale ragione, il broker gestisce il valore dell'intestazione Content-Type come proprietà ContentType nella cartellaProprietà dell'albero logico. Ciò consente al programma di analisi MIME di ottenere il valore di Content-Type per un documento MIME ricevuto su HTTP. Se è necessario creare una nuova struttura MIME o modificare il valore Content-Type. Impostare il valore Content-Type utilizzando la proprietà ContentType nel dominio MIME. E' possibile che l'impostazione del valore Content-Type direttamente nella struttura MIME o nelle strutture HTTP provochino che il valore venga ignorato o utilizzato in modo incongruente. Il seguente ESQL è un esempio di procedura per impostare la proprietà ContentType del broker:
SET OutputRoot.Properties.ContentType = 'text/plain';

Analisi

Il dominio MIME non rafforza la specifica MIME completa. Ciò consente di gestire messaggi probabilmente non validi in altre applicazioni. Ad esempio, il programma di analisi MIME non insiste su un'intestazione MIME-Version. Con il programma di analisi MIME vengono imposti i limiti riportati di seguito:
  • E' necessario formattare le intestazioni MIME correttamente. Ciò significa che:
    • Ciascuna intestazione è una coppia nome-valore separata da due punti su una riga propria, che termina con la sequenza ASCII <CR><LF>.
    • E' necessario che l'intestazione utilizzi un codice ASCII a 7 bit.
    • Utilizzare i punti e virgola per separare i parametri:
      Content-Type: Multipart/Related; boundary=MIME_boundary; type=text/xml
    • E' possibile che un'intestazione contenga un commento tra parentesi, ad esempio:
      MIME-Version: 1.0 (Generated by XYZ)
  • Una riga che inizia con spazi bianchi viene gestita come il proseguimento della riga precedente. Ciò consente di dividere un'intestazione lunga in più righe.
  • Se due o più intestazioni in un blocco di intestazione hanno lo stesso nome, i relativi valori vengono concatenati in un elenco separato da virgole.
  • E' necessario che sia disponibile un'intestazione Content-Type MIME. L'intestazione non è sensibile al maiuscolo/minuscolo. Se il trasporto è HTTP, qualsiasi valore Content-Type nell'intestazione HTTP viene utilizzato come Content-Type principale. Se il trasporto non è HTTP, è necessario che il Content-Type venga visualizzato nel blocco di intestazione iniziale del messaggio MIME.
  • Il valore Content-Type è un tipo di supporto seguito dal carattere / e da un tipo secondario. Ad esempio, text/xml e multipart/related. Il programma di analisi non convalida tipi secondari. E' possibile che il valore sia seguito da uno o più parametri separati da punto e virgola.
  • Se il tipo di supporto di un messaggio è multiplo, è necessario che un attributo di limite fornisca il testo utilizzato per delimitare le parti MIME separate.
  • Ciascuna parte MIME individuale dispone della propria intestazione Content-Type. E' possibile che l'intestazione Parte disponga di un tipo di supporto multiplo, consentendo la nidificazione dei messaggi multipli. In tal caso, è necessario fornire un attributo di limite valido con un valore diverso da quelli definiti in precedenza nel messaggio. Le parti MIME con qualsiasi altro tipo di valore Content-Type vengono gestiti come dati BLOB.
  • I delimitatori di limite di più parti MIME vengono rappresentati in codice ASCII a 7 bit. Il delimitatore di limite è composto da una riga che comincia con una coppia di segni meno seguiti da una stringa di limite. E' necessario che tale sequenza non si verifichi in alcun punto del messaggio MIME diverso dal limite. Un delimitatore di fine MIME è costituito da con una coppia di segni meno seguiti da una stringa di limite MIME seguita da un'ulteriore coppia di segni meno. Tutte le righe di delimitatori devono terminare nella sequenza ASCII <CR><LF>. Un esempio di messaggio delimitato è:
    --MIME_boundary
    dati messaggio
    --MIME_boundary
    dati messaggio
    --MIME_boundary--
    dove MIME_boundary è la stringa del delimitatore di limite e dati messaggio rappresenta i dati del messaggio.
  • Il tipo di supporto MIME "messaggio" non è supportato e risulta in un errore durante il runtime.
  • Qualsiasi dato di preambolo (il testo compreso tra il blocco di intestazione MIME iniziale e il primo delimitatore di limite) o dato di epilogo (il testo successivo al delimitatore di limite finale) viene memorizzato nell'albero logico come elemento solo valore. E' possibile visualizzare i dati di preambolo e di epilogo solo come, rispettivamente, il primo e l'ultimo elemento child di un nodo Parti.
  • Il programma di analisi MIME non supporta l'analisi su richiesta e ignora la proprietà Intervallo di analisi. Il programma di analisi non convalida i messaggi MIME su un modello di messaggio e ignora la proprietà di convalida Message Brokers Toolkit.

Casi particolari di MIME multipli

Il programma di analisi MIME è progettato soprattutto per essere utilizzato con messaggi MIME multipli. Mediante il programma di analisi è tuttavia possibile gestire alcuni casi particolari.
  • MIME multipli con una sola parte. L'albero logico per la parte MIME salva il Content-Type e altre informazioni normalmente ma l'elemento Dati per l'allegato è vuoto.
  • Singola parte MIME. Per una singola parte MIME l'albero logico non dispone di elementi child Parti. L'ultimo elemento child della struttura MIME è l'elemento Dati. L'elemento Dati costituisce l'elemento parent del BLOB che contiene i dati del messaggio.
  • Parti MIME senza contenuto.

S/MIME (Secure MIME)

S/MIME rappresenta uno standard per l'invio di messaggi di posta elettronica protetti. S/MIME dispone di un livello esterno Content-Type multipart/signed con i parametri protocollo e micalg che definiscono gli algoritmi utilizzati per crittografare il messaggio. E' possibile che una o più parti MIME dispongano di contenuto codificato. Queste parti dispongono di valori Content-Type, ad esempio application/pkcs7-signature e un valore Contenuto-Trasferimento-Codifica di base64. Il dominio MIME non effettua tentativi di interpretazione o verifica della firma del messaggio.

Concetti correlati
Dettagli della struttura MIME
Struttura ad albero logica
Concetti per la creazione dei modelli di messaggio
Attività correlate
Manipolazione del contenuto del messaggio
Riferimenti correlati
Campi di intestazione standard MIME
Informazioni particolari | Marchi | Download | Libreria | Supporto | Commenti
Copyright IBM Corporation 1999, 2006 Ultimo aggiornamento: ago 17, 2006
ac30080_