MIME parser use and restrictions

The MIME domain does not support the full MIME standard, but supports specific known uses of MIME. Read this general introduction to the MIME parser, and information about some of the restrictions in its use.

MIME stands for Multipurpose Internet Mail Extensions. A multipart MIME message comprises a number of message parts, each qualified by MIME headers. The MIME domain and parser enable you to parse and write multipart MIME messages.

MIME is used to send email messages. When the email includes attachments, a multipart MIME message is used. Multipart MIME is becoming more widely used as a convenient physical format for sending other kinds of message that have attachments or that consist of multiple separate parts.

Examples are:

  • RosettaNet. Each part is typically a separate XML document but there might also be non-XML attachments. The MIME parser enables the parsing of MIME messages of the style used by RosettaNet, including nested multipart messages. However, it does not offer specific support for the wider RosettaNet architecture or PIPs (Partner Interface Processes).
  • SOAP with Attachments (SwA). The first part is a normal SOAP XML message and the other parts contain XML or non-XML attachments.
  • TLOG. This is a specialized use of SwA in which the attachments are groups of point-of-sale Transaction Log records in either one of two XML forms or a tagged/delimited string form. Different POS devices generate different TLOG record formats such as ACE. In addition, the record can either be processed before it is uploaded or it can be sent unchanged.

Restrictions

The MIME parser is driven by bit streams and has no external metadata; it relies exclusively on bitstream metadata when parsing, and on tree metadata when writing. The parser does not validate MIME messages against a message model and it ignores the tooling Validate property. The parts of a MIME message are handled as BLOBs. You can parse specific MIME parts by using a different parser. If you are using an MRM parser, messages can be validated in the usual way. The MIME parser does not support on-demand parsing and ignores the Parse Timing property.

You can specify the new MIME domain either at run time in an MQRFH2 header (WebSphere® MQ only) or statically in their message flow in the tooling (on the input nodes MQGet, HTTPRequest, ResetContentDescriptor, or XSLTransform). The MIME parser is then invoked to own the last child of root (for example, the message body). The MIME domain can be specified with the ESQL CREATE PARSE clause and ASBITSTREAM function to parse and write bit streams. The MIME parser handles documents received both over the HTTP transport (where the Content-Type appears as an HTTP header) and over other transports (where the Content-Type header is part of the message body). In both cases, set the Content-Type value using the ContentType property in the MIME domain. Setting the Content-Type value directly in the MIME tree or HTTP trees can lead to the value being ignored or used inconsistently.

Typically, the MIME parser handles the majority of uses of MIME in application-to-application messaging, including multipart MIME with a single part and non-multipart MIME documents. However, you should use the SOAP domain for SOAP with Attachments (SwA).