Study On Multipurpose Internet Mail Extensions Computer Science Essay

Published: Last Edited:

This essay has been submitted by a student. This is not an example of the work written by our professional essay writers.

Multipurpose Internet Mail Extensions or Multimedia Internet Mail Extensions is used for describing the content of e-mail include types of single message. The most fundamental e-mail transmission protocol like SMTP supports only 7-bit ASCII characters. This obviously limits the Internet e-mail when transmitted it includes only the characters that are adequate for writing only English and other languages. Here MIME defines the work of sending other kinds of information in an e-mail that includes other languages other than English using character encodings and 8 bit binary content files containing audios, videos, pictures. In addition to e-mail applications, Web browsers also support various MIME types. This enables the browser to display or output files that are not in HTML format. MIME is also constrained by some rules for encoding all non-ASCII characters in email headers, such as "Subject:" which will allow these header fields to contain other languages too rather than English. In this paper, we will discuss about how MIME is used by the mail servers and the email clients and its encoding specifications.


One of the basic email protocol SMTP supports only 7bit ASCII values, so that limits the content of data transmitted through emails. No other languages except English would be possibly transmitted using SMTP, and the multimedia contents are totally restricted on the basic email. MIME actually defines the mechanisms of sending 8 bit binary content files like the pictures, audios, videos and also the text in other languages than English with the help of character encodings. And also MIME plays a vital role in the communication protocols like HTTP that transmits data like email context but they are not exactly an email. The messages through MIME are generally interpreted by an email client or mail servers.

MIME was defined in 1992 by Internet Engineering Task Force or it is simply called IETF. It is mainly used for internet standard denotes how messages are formatted that can be exchanged between two emails contain both textual and non-textual. It specified a flexible format of Non-text email that attachment is used to sent via net. This Non-text information is to be encoded as text is known as Base64 encoding.

It allows the client or Web browser to sent and receive include any type of file virtually like audios, videos, pictures over the internet. The format we used for e-mail attachments are zip, jpeg, aol, tar and some e-mail software which uses .mim or .mme files. The main thing we required MIME is for no changes between client and server.

Official MIME RFC

RFC-822   - It is the standard for Internet text messages

RFC-2045 - It is the format of Message Bodies

RFC-2046 - Media Types

RFC-2047 - Message Header Extensions

RFC-2048 - Registration Procedures

RFC-2049 - Conformance Criteria

RFC 2183 - It refers to Content Disposition Header

RFC 2231 - It has the MIME Parameter Value and Encoded Word Extensions

RFC 2387 - multipart/related MIME format

RFC 2392 - cid: and mid: URIs

MIME Header fields:

Using these header fields the data is identified during transmission. During the transmission, the client reads the header which selects the protocol to allow the data being received by receiver. Mostly MIME header fields are commands with enclosed parenthesis which has some rules specified in RFC 822 and it is backward compatible.

1. MIME version

The version of Internet message format is identified using this. It is often required for MIME header. The following two fields are basically same, since the parenthesized comments are permitted.

MIME-version: 1.0

MIME-Version: 1.0 (Generated by e-sec 2.5)

We ensure that this version is required for the top-level of the message. Despite many updates and change in MIME from the past, the version always remains the same as per the IETF.

2. Content type

It contains the type of content in the message containing the part of type and subtype, it also has some set of parameters which contains certain attributes and values. Most of the content-types are specified as binary or 8-bit character. This top level content type is mainly required by the MIME parser which has stored in logical tree. The default content type is text/plain.


Content-Type: type / subtype; parameter

Here type and subtype are referred as Content-Type and parameters are optional by semicolons.

For example,

Content-Type: text/html

Content-Type: multipart/related; boundary = Boundary; type=text/html

The predefined types are described below,

Text - Textual information

Multipart - The data which contains a multiple part of data type

Message - An encapsulated message

Image - An image data

Audio - An audio data

Video - The data with video

Application - May contain binary data or executed by mail based application

3. Content transfer encoding

Some of the data cannot be transferred using transport protocol. The Content-Transfer-Encoding helps to mention the type of encoding that is used, the 7-bit format is default. The MIME is defined by five distinct values such as 7-bit, 8-bit, binary, base64 and quoted-printable. The body of the message part must be defined with the given transfer encoding and must match the declared format.

7bit - 7-bit text format without accented characters

8bit - 8-bit text format

quoted-printable - Quoted Printable format with accented characters

base64 - Base 64, it is for sending binary files as attachments

Binary - binary format

4. Content Description

The body is briefly described by Content-Description header. This header is only a manual reference, and does not affect the structure or content of the message part.

5. Content ID

A Content ID is used for external reference from one message part to another. So Content-ID is more or less similar to message ID. Content-ID may be unique to identify MIME entities which are mainly referenced by message/external mechanism. It is also important that the case of the multipart/alternative content-type, the value has special semantics.

Content-ID<xxx@yyyy> is the general format.

6. Content disposition

It is also an optional one, this file should be showed as inline or as an attachment, or what the suggested filename should be if it is saved as an attachment. In addition to that, the content-disposition header can also specify the name of the file and the creation date along with the modification date.

Content-Disposition: attachment/inline; filename="report.jpg"

7. MIME Header Example:


Multipart messages

In a multipart MIME message, the "Content-Type: " header contains a boundary. This boundary must not occur in any other of the parts and it must be placed at the beginning as well at the end of the message body and also between the parts. Each message part must consist of its own content header and a body. And generally multipart content can be nested. A multipart message content-transfer-encoding must always be "7bit", "8bit" or "binary" in order to avoid some major complications which would be caused because of the multiple levels of decoding. In this multipart block in a whole will not include any character set or any non ASCII characters at headers of the message part and are handled deliberately by the Encoded Word system and if appropriate of their content type, the part bodies can specify the character sets.

Multipart Subtypes

The MIME standard has many kinds of multipart message subtypes which is actually specifies the type of the message it holds and its relationship to each other. The Content-Type header has the subtype of the overall message specified. Consider if a multipart MIME message uses mixed subtype then the Content-type header would have been set as "multipart/mixed". Initially, the RFC defined 4 subtypes, they are mixed, digest, alternative and parallel. A minimum compliant application will at least support mixed and digest and the rest comes as optional. All the unrecognized subtypes will be treated as multipart/mixed.

The most commonly used subtypes are as follows,


If a picture or any other files which are easily readable are sent, many mail clients will consider them and displays as inline, only otherwise if it is not specified on the content-disposition header. Or else it will offer it as attachments. "Text/plain" is the default content-type for each part of the message. It is defined in RFC 2046.

2. Message

A message/rfc822 part is the one which has the content of the email message including the headers. RFC822 is a misnomer because that message holds the full MIME message. It is also uses digest for email forwarding. It is defined in RFC 2046.

3. Digest

Multipart/digest is used to send multiple messages. The “message/rfc822” is the default content-type for each part. It is defined in RFC 2046.

4. Alternative

A multipart/alternative subtype is that every part is an alternative one of the same or similar content. But each is in a different format which is given in the Content-Type header. Those formats are exactly genuine to the original but can that can be changed from least to the most. So that the systems can choose their best needed representation which they have to process. This multipart/alternative is commonly used in email with two parts, first one is with plain text and the other one has the HTML. The first part plain text provides backwards compatibility while the second one the HTML part that is used for formatting and hyperlinks. It is defined in RFC 2046.

5. Related

A multipart/related denotes that the message parts are not individual and it is an aggregate of the whole. The message actually consists of a root part which references other parts as inline, and that in turn references the other parts. These message parts are generally referenced using the "Content-ID" part header. To send a complete web page with images in a single message, this subtype is most commonly used. Generally, the root part contains the HTML document and that uses the image tags to reference stored images. It is defined in RFC 2387.

6. Report

A Multipart/report is a message type which contains the data format that helps the mail server to read the message. It is actually a split between a text/plain and a message/delivery-status which contains the data format that helps the mail server to read. It is defined in RFC 3462.

7. Signed

To attach the digital signature with the message, this multipart/signed message is used. It has two parts, first is the body part and it is followed by the signature part. The signature part is actually created using the whole of the body part and the mime headers. It is defined in RFC1847.

8. Encrypted

A multipart/encrypted message has two parts, the first one contains the control information which is needed to decrypt the second part. As same as the signed messages it also has different types of implementations which are specified in their content type for the control part. "application/pgp-encrypted" and "application/pkcs7-mime" S/MIME are the most common types of multipart/encrypted. It is defined in RFC 1847,

9. Form Data

The values submitted through a form are expressed using the multipart/form-data. Initially it was designed as a part of HTML 4.0, it is most commonly used for submitting files via the hypertext transfer protocol. It is defined in RFC 2388

10. Byteranges

A multipart/byteranges is specified to denote a non-contiguous byte ranges o from a single message. These byteranges are used by the HyperText Transfer Protocol when the server returns multiple byte ranges and is defined in RFC 2616.

MIME Encoding

1. Base64 Encoding

It is used to transfer the non-text messages with maximum protection. Here MIME encodes the non-text messages into text with this base64 encoding method.

2. Content Labeling

It contains a set of different MIME types with file extension.

MIME types consist of primary and sub type separated by text/plain.They are

File Extension MIME Type Description

.3dm x-world/x-3dmf

.ai application/postscript

.bmp image/bmp

.txt Text/plain plain text

.htm Text/html styled text in HTML format

.jpg image/jpeg Picture in JPEG format

.gif image/gif Picture in GIF format

.wav audio/x-wave Sound in WAVE format

.mp3 audio/mpeg Music in MP3 format

.midi music/crscendo

.mime message/rfc822

.mpg video/mpeg Video in MPEG format

.zip application/zip compressed file in PK-ZIP format


Secure/MIME is the security enhancement of MIME, which is the future of the encrypted and secured mail via the Internet. As it provides the similar services like that of PGP it contains encrypted messages and encrypted signatures. They are based on the RSA Security, based on the internet standard for personal and commercial use. This finally says about how MIME has been designed in order to countermeasure certain issues caused by some additional restrictions that are imposed by Internet mail transport mechanisms. And the about the Multipart as well as the Message content types allows mixing and hierarchical structuring of different objects in different types of a single message. Further, content types are the ones which provides the full mechanism for including messages or body parts as audio, pictures, or other kinds of data. Finally, a number of useful content types are also defined for the general use in MIME by permitting the user agents, notably Text/Richtext, Message/Partial, and Message/External-Body.