Application: Electronic Mail Linda Wu (CMPT )
Notes-19 CMPT 471 Content system model SMTP protocol MIME extensions Mail access protocols Reference: chapter 27
Notes-19 CMPT 471 System Model Client-server model MTA User A (sender) User B (receiver) MTA ClientServer Relay Internet Alias expander DB MTA DB Spool UA Mailboxes UA interface Alias expander
Notes-19 CMPT 471 System Model (cont.) UA: user agent A program used by the user to send and receive s, e.g., mutt, elm, pine, Eudora, Outlook Express Sending The user creates mail through the UA The mail has an envelop and a message Receiving UA checks the mailboxes periodically Displays a message list, in which each line is a summary about a particular message in the mailbox: sender address, subject, the time the mail was sent or received
Notes-19 CMPT 471 System Model (cont.) MAIL FROM: RCPT TO: From: User A To: User B Reply-to: Date: dd/mm/yyyy Subject: …… Dear User B, …….. Yours, User A Body Header Message Envelop
Notes-19 CMPT 471 System Model (cont.) MTA: mail transfer agent The actual mail transfer is done through MTA Unix MTA: Sendmail, postfix, …… Client MTA is needed to send Server MTA is needed to receive
Notes-19 CMPT 471 System Model (cont.) Delayed delivery The message does not have to be delivered immediately Sender - side delay: spooling After UA creates a message, the message is delivered to spool for storage MTA periodically (10~30 mins) checks the mail in the spool to see if it can be sent If the message cannot be sent, it remains in the spool to be checked in the next cycle If a message cannot be delivered in the time-out period (3~5 days), it is returned to the sender
Notes-19 CMPT 471 System Model (cont.) Receiver-side delay After the message is received by the MTA, it does not have to be read the receiver immediately The mail can be stored in the mailbox of the receiver Intermediate delay The intermediate MTAs can receive mails, keep mails in their own mailboxes and spools, and send them when appropriate
Notes-19 CMPT 471 System Model (cont.) address address must be unique Two parts: local-part & domain-name Address of the mailbox on the destination machine Domain name of a mail destination to which the mail should be delivered
Notes-19 CMPT 471 System Model (cont.) Mail alias expansion One-to-many alias expansion User can create an alias that is mapped to a list of recipients (mailing list) The recipients on a list need not to be local For an outgoing message Check the recipient’s name against the alias expansion database If there is an expansion, replace the recipient with the mapped version, and pass the message to MTA Alias is also used to map incoming recipient address
Notes-19 CMPT 471 System Model (cont.) Many-to-one alias expansion A user can have several addresses, but the user agent only recognizes one mailbox name When a system receives mail, it checks the many-to-one expansion database If a mailbox name corresponding to the local part of the received address is found, the mail is sent to that mailbox; otherwise, it is discarded
Notes-19 CMPT 471 System Model (cont.) One-to-many alias expander DB friends (one name) site1.com site2.edu site1.com Many-to-one alias expander DB John (one recipient) site1.com site1.com site1.com (many recipients) (many addresses)
Notes-19 CMPT 471 Simple Mail Transfer Protocol SMTP Focuses on how the underlying mail delivery system passes mails across an internet Does NOT specify: How the mail system accepts mail from a user How the user interface presents the user with incoming mail How the mail is stored Sends mail in NVT 7 - bit ASCII format Cannot be used for languages not supported by 7 - bit ASCII characters Cannot send binary data
Notes-19 CMPT 471 Simple Mail Transfer Protocol (cont.) Commands and responses SMTP uses commands and responses to transfer mail between an MTA client and an MTA server Command Keyword: argument(s) Response A 3-digit code that may be followed by additional textual information MTA client MTA server Commands Responses
Notes-19 CMPT 471 Simple Mail Transfer Protocol (cont.) Commands keywordArgument(s)Meaning HELOSender’s host name To identify the client itself MAIL FROM Sender of the message To identify the sender of the mail RCPT TOIntended recipient To identify mail recipient DATABody of the mailTo send the actual message QUITTo terminate the message RSETTo abort the current mail transaction VRFYName of recipient to be verified To verify the address of the recipient NOOPTo check the status of the recipient
Notes-19 CMPT 471 Simple Mail Transfer Protocol (cont.) Responses CodeMeaning Positive reply ……… 220Service ready 221Service closing transmission channel 250Requested command completed 251User not local; mail will be forwarded 354Start mail input Negative reply 421Service not available 450Mailbox not available..…… 500Syntax error; unrecognized command..……
Notes-19 CMPT 471 Simple Mail Transfer Protocol (cont.) MAIL FROM: OKRCPT TO: OKDATA354 start mail inputFrom: User ATo: User BDate: dd/mm/yyyySubject: …… (Empty line) Dear user B, … OK MTA client MTA server EnvelopHeader Body
Notes-19 CMPT 471 Simple Mail Transfer Protocol (cont.) Mail transfer The process of transferring a mail has 3 phases Connection establishment Mail transfer Connection termination
Notes-19 CMPT 471 Simple Mail Transfer Protocol (cont.) transfer connection establishment MTA server 220 service ready TCP 25 MTA client TCP XXXXX 250 OK HELO: site1.com 221 service closed QUIT … mail transfer … transfer connection termination TCP connection ready
Notes-19 CMPT 471 MIME Extensions Multipurpose Internet Mail Extensions A supplementary protocol that allows non- ASCII data to be sent through SMTP Not a mail protocol; only an extension to SMTP Can be thought of as a set of software functions that transform non-ASCII data to ASCII data and vice versa MIME User A SMTP MIME User B SMTP Non-ASCII 7-bit NVT ASCII Non-ASCII 7-bit NVT ASCII
Notes-19 CMPT 471 MIME Extensions (cont.) MIME headers MIME defines 5 headers to be added to the original SMTP header section The headers define the transformation parameters MIME-Version: current version is 1.1 Content-Type: text/plain, image/jpeg, image/gif, multipart/mixed, application/postscript, …… Content-Transfer-Encoding: 7bit, 8bit, binary, base64, quoted-printable Content-Id: uniquely identify the message Content-Description
Notes-19 CMPT 471 MIME Extensions (cont.) header MIME-Version: 1.1 Content-Type: type/subtype Content-Transfer-Encoding: encoding type Content-Id: message id Content-Description: textual explanation of nontextual contents MIME header body
Notes-19 CMPT 471 MIME Extensions (cont.) Base64 encoding Divide the binary data into 24-bit blocks Each blocks is then divided into four 6-bit sections Interpret each 6-bit section as one character according to Base64 encoding table Non-ASCII data (51) (8) (4) (57) ASCII data Z I E 5
Notes-19 CMPT 471 MIME Extensions (cont.) Quoted-printable encoding If a character is ASCII, it is sent as it is If a character is not ASCII, it is sent as 3 characters: The first character is “=” The next two are the hexadecimal representation of the byte & L Non-ASCII K & L = D K Mixed ASCII & non-ASCII data ASCII data
Notes-19 CMPT 471 Mail Access Protocols Mail delivery SMTP client Local SMTP server Remote SMTP server Mail box Mail access server Mail access client Stage 1 (SMTP) Stage 2 (SMTP) Stage 3 (Mail Access Protocol)
Notes-19 CMPT 471 Mail Access Protocols (cont.) Mail is stored in user’s permanent mailbox for later retrieval Mail access protocol To retrieve mails from a permanent mailbox to a local computer To manipulate the mailbox content Two popular mail access protocols Post Office Protocol Version 3 (POP3) Internet Mail Access Protocol Version 4 (IMAP4)
Notes-19 CMPT 471 Mail Access Protocols (cont.) POP3 POP3 client creates a TCP connection to the POP3 server on the mailbox computer Server authenticates the session using user-name and password Client sends commands to retrieve a copy of one or more messages Two modes Delete mode: the mail is deleted from the mailbox after each retrieval Keep mode: the mail remains in the mailbox after retrieval
Notes-19 CMPT 471 Mail Access Protocols (cont.) POP3 server User-name TCP 110 POP3 client TCP XXXXX Password OK 1 Retrieve 1 User computerMail server OK # and sizes List …… N Retrieve N
Notes-19 CMPT 471 Mail Access Protocols (cont.) IMAP4 Similar functions as POP3 Mailboxes are located on the same computer as IMAP4 server User runs IMAP4 client to contact the server and retrieve mails Extended functions A user can check the header, or, search the contents of the mails for a specific string, before downloading A user can partially download mail A user can create, delete, or remove mailboxes on the mail server A user can create a hierarchy of mailboxes in a folder for storage