Electronic Mail (SMTP, POP, IMAP, MIME) Chapter 26
Electronic Mail Email used to send memos over an internet Widely used Popular because it is fast and convenient Can send small notes or large memos More users send files with email than file transfer Different concept than other network uses Must provide for unavailable remote machine Temporary outage should not cause sender to wait or the transfer to abort
Spooling used to handle delayed delivery When user sends, mail system stores copy Initiates transfer as a background activity Sender can proceed with other activities Background mail process becomes a client Uses DNS to map destination name to IP address Attempts to form TCP connection to destination mail server If successful, passes copy to remote system’s spool area If not, records attempted time and terminates Background process periodically sweeps spool area If finds undelivered mail, tries again If cannot deliver after an extended time, notifies sender
Figure 26.1
Three hidden ideas Recipient specified by text string local-part@domain-part (ex. rhammell@towson.edu) Names independent of other machine names Mail destination names decoupled from usual domain names Mail forwarding Mail that arrives on one machine may be forwarded to another Includes a mail alias expansion mechanism
TCP/IP Standards for Email Service Two sets of mail standards Message formats Exact format for headers Body of text formatting up to sender Details of email exchanges between computers
Simple Mail Transfer Protocol SMTP Standard for exchange of mail between machines Focuses on how underlying mail delivery system passes messages across internet Not specify how mail system accepts mail from a user Not specify how user presented with incoming mail Not specify how mail is stored Not specify how frequently send attempts made
SMTP is straightforward Client/server communication done in ASCII text Easily readable by humans Client establishes reliable stream connection to server; waits for server to send READY FOR MAIL When get, client sends HELO command Server responds by identifying itself Once communication established, sender can: transmit one or more mail messages terminate the connection Request server to reverse roles (mail go other way) Receiver must acknowledge each message; or can abort connection or abort current message transfer
Mail Retrieval & Mailbox Manipulation Protocols SMTP scheme implies that a server must remain ready to accept email at all times What about user with dialup Internet access? Only be available when dialed in Use a two-stage delivery process User given mailbox on system with permanent connection That computer runs a conventional SMTP server User forms dialup connection, runs protocol to get messages Two protocols allows remote user to get mail from permanent mailbox
Post Office Protocol Current version is 3; POP3 User invokes POP3 client Creates TCP connection to POP3 server User authenticates by login & password User client sends commands to retrieve messages Computer with permanent mailbox must run two servers SMTP server accepts mail and stores it POP3 server allows user to get messages
Internet Message Access Protocol Current version is 4: IMAP4 Uses same general paradigm as POP3 But allows user to dynamically create, delete, or rename mailboxes Also provides more functionality for message retrieval and processing Examine headers without retrieving Search for string and retrieve portions of a message
MIME Extension for Non-ASCII Data Multipurpose Internet Mail Extensions Defined for email transfer of Non-ASCII data Does not replace or change POP3 or SMTP Allows encoding of arbitrary data in ASCII Then can be transmitted in a standard email message MIME header lines specify: Version of MIME used Type of data being send Encoding used to covert the data to ASCII
Example: From: bill@acollege.edu To: john@example.com MIME-Version: 1.0 Content-Type: image/gif Content-Transfer-Encoding: base64 …data for the image…
MIME-Version: 1.0 Content-Type: multipart/mixed; Content-Type: application/msword; name="assign10.doc" Content-Transfer-Encoding: base64 Content-Description: assign10.doc Content-Disposition: attachment; filename="assign10.doc" 0M8R4KGxGuEAAAAAAAAAAAAAAAAAAAAAPgADAP7/CQAGAAAAAAAAAAAAAAABAAAAbAAAAAAAAAAA EAAAbgAAAAEAAAD+////AAAAAGsAAAD///////////////////////////////////////// EAAAbgAAAAEAAAD+//// //////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////s pcEAA2AJBAAA8BK/AAAAAAAAEAAAAAAABgAAXA0AAA4AYmpiastzy3MAAAAAAAAAAAAAAAAAAAAA AAAJBBYANBoAAKkZAQCpGQEAXAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD//w8AAAAA AAAAAAD//w8AAAAAAAAAAAD//w8AAAAAAAAAAAAAAAAAAAAAAKQAAAAAAHAEAAAAAAAAcAQAAHAE AAAAAAAAcAQAAAAAAABwBAAAAAAAAHAEAAAAAAAAcAQAABQAAAAAAAAAAAAAAIQEAAAAAAAADAoA AAAAAAAMCgAAAAAAAAwKAAAAAAAADAoAABwAAAAoCgAAFAAAAIQEAAAAAAAAhpMAAGgBAABICgAA AAAAAEgKAAAAAAAASAoAAAAAAABICgAAAAAAAEgKAAAAAAAASAoAAAAAAABICgAAAAAAAEgKAAAA AAAAKZMAAAIAAAArkwAAAAAAACuTAAAAAAAAK5MAAAAAAAArkwAAAAAAACuTAAAAAAAAK5MAAAAA AADulAAAaAIAAFaXAACAAAAAK5MAABUAAAAAAAAAAAAAAAAAAAAAAAAAcAQAAAAAAABICgAAAAAA AAAAAAAAAAAAAAAAAAAAAABICgAAAAAAAEgKAAAAAAAASAoAAAAAAABICgAAAAAAACuTAAAAAAAA AAAAAAAAAABwBAAAAAAAAHAEAAAAAAAASAoAAAAAAAAAAAAAAAAAAEgKAAAAAAAAQJMAABYAAABm CwAAAAAAAGYLAAAAAAAAZgsAAAAAAABICgAACgAAAHAEAAAAAAAASAoAAAAAAABwBAAAAAAAAEgK AAAAAAAAKZMAAAAAAAAAAAAAAAAAAGYLAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
Content-Type must have two identifiers A content type and a subtype Separated by a slash Figure 26.5
MIME Multipart Messages Multipart content type useful for flexibility Four subtypes defined Mixed Message can have multiple independent submessages Each can have own type and encoding Alternative Message can have multiple representations of the same data Parallel Message can have subparts that should be viewed together Digest Single message can contain a set of other messages
Summary Email is one of most widely available application services Like other TCP/IP services, uses client-server Mail system buffers outgoing/incoming msgs Allows transfer to be done in the background TCP/IP suite has separate standards for: Mail message format Mail transfer
SMTP Defines how mail system on one machine transfers mail to a server on another POP3 Specifies how a user can retrieve contents of a mailbox Allows user to have permanent mailbox on a computer with continuous Internet connectivity User can access from a machine with intermittent connectivity
MIME Provides mechanism allowing arbitrary data to be transferred using SMTP Lines in header of message define the type of data and the encoding used Mixed multipart type is especially useful Single message can contain multiple data types