MIME Boundaries

MIME boundaries are strings of 7-bit US-ASCII text that define the boundaries between message parts in a MIME message. MIME boundaries are declared in a Content-Type message header for any message that encapsulates more than one message part and in part headers for those parts that encapsulate nested parts.

Messages that encapsulate only one message part do not require MIME boundaries since there is nothing to delineate.

MIME boundaries must consist of strings that are guaranteed to be unique within their scope of reference (i.e, a message or message part). This is done by ensuring that they include:

  • Hyphens (-), which are guaranteed not to exist in base64-encoded data

  • Alphanumeric US-ASCII characters

  • Character sequences that will not appear elsewhere

  • “+” or “.” (although “.” should be avoided as not “mail safe” since it has special meaning under RFC 822)

MIME boundaries may not include any of the following:

  • ASCII control characters

  • ASCII spaces

  • Any of the following characters:

    ()<>@,;:\"/[]?=

    unless declared in a quoted string. Even then, their use is discouraged and not guaranteed to pass through all MTAs

  • Any of the following characters:

    !#$∧'|~",

    if the message is likely to pass through a gateway that translates the mail into the EBCDIC character set

MIME boundaries are case sensitive. A sample MIME boundary looks like this when it is defined in a message header:

Content-Type: multipart/mixed; boundary="------------B164240059B29C0E4EFEC397"

Whenever a parameter, such as the preceding ...

Get Programming Internet Email now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.