Until very recently, electronic mail was the single biggest generator of traffic volume on the Internet.
Email is delivered as follows:
Key concepts:![]()
It defines a message format containing two parts:
From: pscott@ironbark.bendigo.latrobe.edu.au To: hjc@ironbark Reply-To: p.scott@latrobe.edu.au Subject: Problems in Indy lab?
Initially, an email client (usually the delivery agent software on the originating machine) establishes a TCP connection to the SMTP server (at port 25) on the destination machine.
The server responds with an informative message beginning with the
3-digit code 220
The client then sends a HELO
command identifying the domain name of the system it is running on.
The client software then transmits one (or more) mail messages to the
server. Each message is preceded by a MAIL-FROM
and one or more
RCPT-TO
messages. The responses to
these messages always begin with 3-digit numbers followed by a human
readable message. Then the text of the message itself (including its
headers) is transmitted using a DATA
message.
Finally, a QUIT
message from the client tells the server to close the
TCP connection.
An example of this is given on the next slide.
220 redgum.bendigo.latrobe.edu.au ESMTP Sendmail 8.7.3/8.7.3; Mon, 25 Mar 1996 8:16:33 +1000 (EST) helo bindi.bendigo.latrobe.edu.au 250 redgum.bendigo.latrobe.edu.au Hello bindi.bendigo.latrobe.edu.au, pleased to meet you Mail from: pscott@bindi.bendigo.latrobe.edu.au 250 pscott@bindi.bendigo.latrobe.edu.au... Sender ok Rcpt to: hjc@ironbark.bendigo.latrobe.edu.au 250 Recipient ok Data 354 Enter mail, end with "." on a line by itself Subject: Problem with ironbark? From: pscott@bindi.bendigo.latrobe.edu.au Reply-to: p.scott@latrobe.edu.au Is there a problem? Regards . 250 IAA13317 Message accepted for delivery quit 221 redgum.bendigo.latrobe.edu.au closing connection
The MIME specification adds several new header types to RFC822. In the most common usage, the following are added to the basic message header:
The message is then structured into one or more "message parts", using the "Boundary" string as a separator.The following shows an audio attachment to an ordinary text message. Note that non-ASCII data is usually encoded into an ASCII representation.MIME-Version: 1.0 Content-Type: Multipart/Mixed; Boundary=NextBit
--NextBit Content-Type: text/plain Ordinary email mesage in plain ASCII text --NextBit Content-Type: audio/basic Content-Transfer-Encoding: base64 ...ASCII encoded data for the audio message
Content-Type:
header in MIME specifies a "MIME type"
for the data which follows. The MIME type is used to open a suitable
application program to display the attached data. Some standard MIME
types include:
text/plain | ASCII text |
text/html | HTML text |
image/gif | GIF image |
video/mpeg | MPEG video |
application/postscript | PostScript document |
application/octet-stream | Arbitrary data |
For non-ASCII (8 bit) data, common encodings include "quoted-printable" and "Base64".
In Base64 encoding, the message is subdivided into groups of 3 bytes (24 bits) in length. These 24 bits are then subdivided into 4 groups of 6 bits each. Each 6 bit group is represented as one of 64 printable ASCII characters, from the 95 printable characters in ASCII. Finally, each of the printable characters is sent as an 8 bit byte. Thus, 24 bits of data are sent as 32 bits of ASCII data in the encoded message.
The Post Office Protocol (POP3) is designed to allow mail to be delivered to a mailbox on, eg, a Unix host using SMTP, but to later (at the recipient's convenience) download the contents of the mailbox to their system.
A POP client (such as Eudora or Netscape Mail) establishes a TCP connection (on port 110) to a server process on the (eg) Unix system where the mailbox resides. The user is authenticated (username/password), and the contents of her mailbox is downloaded for processing on her PC or Mac.
POP is universally used where a user has "dial up" Internet access from a commercial Internet Service Provider - the user's mailbox is maintained by the ISP.