MIME 解析器不支持全部 MIME 标准,但是支持 MIME 的一般使用,包括带有附件的 SOAP(SwA)。消息可以通过 HTTP 或其他传输类型(例如 WebSphere MQ)发送到代理上。如果您的消息使用针对多段式消息的 MIME 标准,请使用 MIME 域。
多用途因特网邮件扩充协议(MIME)域不支持带有消息介质类型的 Content-Type 值。
MIME 域和解析器使得用户可以解析和写 MIME 消息。MIME 解析器创建逻辑树和设置代理 ContentType 属性。您可以使用 Compute 节点、Java Compute 节点和映射节点来处理逻辑树。使用 MIME 域中的 ContentType 属性设置 Content-Type 值。
以下示例显示了一个简单的多段式 MIME 消息。显示的消息是带有附加消息的 SOAP,附加消息分两部分,即根部分和一个附加部分。边界字符串 MIME_boundary 界定这些部分。
MIME-Version: 1.0 Content-Type: Multipart/Related; boundary=MIME_boundary; type=text/xml Content-Description: Optional description of message. Optional preamble text --MIME_boundary Content-Type: text/xml; charset=UTF-8 Content-Transfer-Encoding: 8bit Content-ID: <rootpart@example.com> <?xml version='1.0' ?> <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"> <SOAP-ENV:Header xmlns:ins="http://myInsurers.com"> <ins:ClaimReference>abc-123</ins:ClaimReference> </SOAP-ENV:Header> <SOAP-ENV:Body xmlns:ins="http://myInsurers.com"> <ins:SendClaim> <ins:ClaimDetail>myClaimDetails</ins:ClaimDetail> <ins:ClaimPhoto> <href>cid:claimphoto@example.com</href> </ins:ClaimPhoto> </ins:SendClaim> </SOAP-ENV:Body> </SOAP-ENV:Envelope> --MIME_boundary Content-Type: application/octet-stream Content-Transfer-Encoding: binary Content-ID: <claimphoto@example.com> myBinaryData --MIME_boundary-- Optional epilogue text
下图是 MIME 逻辑树的示例。MIME 逻辑树不需要包含此处显示的所有子代。MIME 消息的 Content-Type 头的值与 Properties 子树中的 ContentType 字段相同。传输头是来自所使用的传输(例如 MQMD)的头。
如果知道 MIME 部分的格式,您可以进一步解析树中的 BLOB 数据。您也可以从逻辑树中的 Content-Type 字段中查找有关该格式的信息。或者,您可能知道 MIME 消息采用的格式,并能够对它们作相应解析。例如,您可能知道第一个 MIME Part 始终是 XML 消息,并且第二个 MIME Part 是二进制安全签名。
您必须在消息流中指定如何解析其他消息格式,例如标记的界定或二进制数据,因为 MIME 解析器不这样做。您还必须指定如何处理已编码和签署的消息部分,因为 MIME 解析器不处理这些。