Condividi tramite


Elaborazione dei messaggi multiparte con l'adapter POP3

L'adapter POP3 può elaborare messaggi con codifica MIME conformi agli standard IETF documentati in RFC 2045, RFC 2046 e RFC 2047. I messaggi con codifica MIME possono essere costituiti da una a più parti con tipi di contenuto diversi. In questo argomento viene illustrata l'elaborazione dei messaggi con codifica MIME multiparte tramite l'adapter POP3.

Ricezione di messaggi multiparte con l'adapter POP3

Se un percorso di ricezione che utilizza l'adattatore POP3 ha l'opzione Applica decodifica MIME impostata su True , l'adapter POP3 esegue le azioni seguenti quando riceve un messaggio con codifica MIME:

  1. Creazione di un messaggio BizTalk multiparte dalle parti del messaggio con codifica MIME ricevuto. Il messaggio multiparte può contenere da una a molte parti e conterrà lo stesso numero di parti del messaggio con codifica MIME ricevuto.

  2. Analisi delle intestazioni del messaggio con codifica MIME. Se le intestazioni corrispondono all'elenco di proprietà documentate nell'argomento Proprietà e schema proprietà dell'adapter POP3 , queste intestazioni vengono alzate di livello al messaggio BizTalk in più parti come proprietà di contesto.

  3. Utilizzo di un algoritmo configurabile per designare una delle parti del messaggio con codifica MIME come parte corpo del messaggio BizTalk. L'algoritmo utilizzato per determinare quale parte del messaggio sarà la parte del corpo del messaggio BizTalk è descritta di seguito nella sezione Algoritmo di selezione della parte del corpo utilizzato dall'adapter POP3.

  4. Pubblicazione del messaggio BizTalk multiparte nel database MessageBox.

Algoritmo di selezione della parte corpo utilizzato dall'adapter POP3

Quando l'adapter POP3 crea un messaggio BizTalk multiparte dalle parti del messaggio con codifica MIME che riceve, seleziona una delle parti del messaggio come parte corpo del messaggio BizTalk. La parte corpo del messaggio BizTalk viene utilizzata da BizTalk per operazioni quali convalida del messaggio, mapping, promozione di proprietà, assemblaggio di file flat e così via. I sottoscrittori di un messaggio BizTalk multiparte ricevono tutte le parti del messaggio ma utilizzano solo la parte corpo del messaggio BizTalk designata a meno che non si utilizzi un'orchestrazione, una pipeline personalizzata o un adapter in grado di riconoscere i messaggi multiparte. È ad esempio possibile configurare un'orchestrazione per leggere tutte le parti del messaggio multiparte; l'adapter SMTP può leggere tutte le parti di un messaggio multiparte ed è possibile configurare una pipeline personalizzata per l'utilizzo del componente pipeline del codificatore MIME/SMIME. Per altre informazioni sull'uso di un'orchestrazione per l'utilizzo di un messaggio in più parti, vedere la sezione seguente Elaborazione di messaggi in più parti nelle orchestrazioni.

L'adattatore POP3 seleziona la parte del corpo del messaggio BizTalk dalle parti del corpo disponibili in base ai valori specificati per l'indice della parte corpo e il tipo di contenuto della parte del corpo.

Nota

L'adattatore POP3 è progettato per riconoscere i tipi di contenuto della parte del corpo definiti in RFC 2046.

Di seguito viene descritto l'algoritmo utilizzato per selezionare la parte corpo del messaggio BizTalk di un messaggio di posta elettronica:

  1. Se l'indice della parte del corpo è impostato su 0 e il tipo di contenuto della parte corpo è vuoto, viene usato l'algoritmo seguente per selezionare la parte del corpo del messaggio BizTalk:

    • Viene utilizzata la prima parte MIME con l'intestazione Content-Description impostata su "body".

    • Altrimenti viene utilizzata la prima parte MIME con l'intestazione Content-Type impostata su "text/xml".

    • Altrimenti viene utilizzata la prima parte MIME con l'intestazione Content-Type impostata su "text/plain".

    • Altrimenti viene utilizzata la prima parte MIME con l'intestazione Content-Type impostata su "text/".

    • Altrimenti viene la prima parte MIME.

  2. In caso contrario, se l'indice della parte del corpo è impostato su 0 e viene impostato il tipo di contenuto della parte corpo del corpo, la prima parte del corpo del messaggio in arrivo corrispondente al tipo di contenuto della parte corpo specificata viene selezionata come parte del corpo del messaggio BizTalk. Se non sono disponibili parti con un tipo di contenuto corrispondente, il messaggio verrà sospeso.

  3. In caso contrario, se l'indice della parte corpo è impostato su un valore maggiore di 0 e il tipo di contenuto della parte corpo è vuoto, la parte del corpo con l'indice specificato viene selezionata come parte del corpo del messaggio BizTalk. Se l'indice specificato è maggiore del numero di parti corpo, il messaggio verrà sospeso.

  4. In caso contrario, se l'indice della parte corpo è impostato su un valore maggiore di 0 e viene impostato il tipo di contenuto della parte corpo, l'indice della parte corpo viene applicato solo alle parti del corpo corrispondenti al tipo di contenuto della parte corpo specificata e la parte corpo corrispondente viene selezionata come parte del corpo del messaggio BizTalk. Se l'indice specificato è maggiore del numero di parti con un tipo di contenuto corrispondente, il messaggio verrà sospeso. Se non sono disponibili parti con un tipo di contenuto corrispondente, il messaggio verrà sospeso.

  5. La parte selezionata come parte corpo del messaggio BizTalk diventa la prima parte del messaggio BizTalk multiparte pubblicato in MessageBox; le rimanenti parti del messaggio mantengono l'ordine in cui erano disposte nel messaggio con codifica MIME originale.

Elaborazione di messaggi multiparte nelle orchestrazioni

Quando l'adapter POP3 crea un messaggio BizTalk multiparte da un messaggio con codifica MIME ricevuto, tutte le parti vengono pubblicate nel database MessageBox, anche se solo una di esse viene designata come parte corpo del messaggio BizTalk. Queste parti possono essere successivamente utilizzate da un'orchestrazione che sottoscrive il messaggio multiparte. In questa sezione vengono illustrate alcune considerazioni relative all'elaborazione di messaggi multiparte in un'orchestrazione.

Elaborazione di messaggi multiparte con un numero noto di parti e tipi di parte noti

Se l'orchestrazione riceve un messaggio multiparte con un numero noto di parti e tipi di parte noti, è possibile dichiarare un messaggio multiparte nell'orchestrazione e impostare il numero di parti e i tipi di parte in fase di progettazione.

Elaborazione di messaggi multiparte con tipi di parte sconosciuti

Se l'orchestrazione riceve un messaggio in più parti con tipi di parti sconosciuti, è possibile dichiarare un messaggio in più parti nell'orchestrazione e usare il tipo XmlDocument per ognuna delle parti per cui il tipo è sconosciuto.

Elaborazione di messaggi multiparte con un numero sconosciuto di parti e tutti i tipi di parte sconosciuti

Se l'orchestrazione riceve un messaggio in più parti con un numero sconosciuto di parti, è possibile dichiarare un messaggio in più parti con una singola parte del tipo XmlDocument nell'orchestrazione per ricevere il messaggio. Se viene ricevuto un messaggio in più parti contenente un numero maggiore del numero di parti dichiarate, il motore di orchestrazione legge il numero di parti presenti nel messaggio, quindi costruisce i tipi di parte appropriati per le parti che corrispondono al numero di parti nel tipo di messaggio dichiarato e quindi costruisce le parti XmlDocument per le parti rimanenti.