Multipurpose Internet Mail Extensions (MIME) is a communications standard that enables the transfer of non-ASCII formats over protocols, such as SMTP, that only support 7-bit ASCII characters.
Examples of non-ASCII formats, include:
MIME defines different ways of encoding the non-ASCII formats so that they can be represented using characters in the 7-bit ASCII character set.
MIME also defines additional email headers that contain information about:
The resulting MIME message can be "decoded" or "re-encoded" after transmission. We say "re-encoded", because the MIME messages can be converted into a different character set from the original message.
The following sections describe some of the key concepts of MIME messages.
MIME supports additional email headers that contain information about the MIME message. For example, the headers provide information about the content of the file, the encryption method used, and the MIME version number.
A MIME header can contain information about the type of content contained in a MIME message. For example, the header could specify that the file contains text/plain, where text is the type, and plain is the sub-type. The combination of type and subtype are known as the MIME type or Internet media type.
A MIME message can contain more than one MIME type. For example, a multi-part MIME message could contain both plain text (type text/plain) and HTML text (type text/HTML).
The Content-Type header indicates that the MIME message contains more than one MIME type. It also uses the boundary parameter to indicate which string of text will be used to mark the start and end of each body part. For example: Content-Type: multipart/mixed; boundary=gc0y0pkb9ex
Each body part will have its own data type. For example, a plain text body part could be defined as Content-type: text/plain; charset=us-asciib>
If the content in the body of a MIME message is too large to pass through the mail transfer system, the body can be passed as a number of smaller MIME messages. These MIME messages are known as "partial MIME messages", because each MIME message only contains a fragment of the total message that needs to be transmitted.
Each partial MIME message has:
Instead of containing data in the body of a MIME message, the body can contain a reference to the content.
The MIME message body or body part has a content type of Message/External-Body.