290 likes | 434 Views
Application: Electronic Mail. Linda Wu (CMPT 471 • 2003-3). Content. Email system model SMTP protocol MIME extensions Mail access protocols Reference: chapter 27. User A (sender). User B (receiver). interface. interface. UA. UA. Spool. Mailboxes. DB. DB. Alias expander.
E N D
Application: Electronic Mail Linda Wu (CMPT 471 • 2003-3)
Content • Email system model • SMTP protocol • MIME extensions • Mail access protocols Reference: chapter 27 CMPT 471 2003-3
User A (sender) User B (receiver) interface interface UA UA Spool Mailboxes DB DB Alias expander Alias expander MTA MTA Client Server Relay Relay MTA MTA Internet Email System Model • Client-server model CMPT 471 2003-3
Email System Model (cont.) • UA: user agent • A program used by the user to send and receive emails, e.g., mutt, elm, pine, Eudora, Outlook Express • Sending email • The user creates mail through the UA • The mail has an envelop and a message • Receiving email • UA checks the mailboxes periodically • Displays a message list, in which each line is a summary about a particular message in the mailbox: sender email address, subject, the time the mail was sent or received CMPT 471 2003-3
Email System Model (cont.) Envelop Header Message Body CMPT 471 2003-3
Email 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 email • Server MTA is needed to receive email CMPT 471 2003-3
Email 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 CMPT 471 2003-3
Email 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 CMPT 471 2003-3
Email System Model (cont.) • Email address • Email 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 CMPT 471 2003-3
Email 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 CMPT 471 2003-3
Email System Model (cont.) • Many-to-one alias expansion • A user can have several email 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 CMPT 471 2003-3
friends (one name) John (one recipient) One-to-many alias expander Many-to-one alias expander DB DB usera@ site1.com userb@ site2.edu userc@ site1.com william@ site1.com john@ site1.com black@ site1.com (many recipients) (many addresses) Email System Model (cont.) CMPT 471 2003-3
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 CMPT 471 2003-3
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 Commands MTA client MTA server Responses CMPT 471 2003-3
Simple Mail Transfer Protocol (cont.) CMPT 471 2003-3
Simple Mail Transfer Protocol (cont.) CMPT 471 2003-3
MTA server MAIL FROM: usera@site1.com 250 OK RCPT TO: user2@site2.edu 250 OK DATA 354 start mail input From: User A To: User B Date: dd/mm/yyyy Subject: …… (Empty line) Dear user B, …... . 250 OK MTA client Body Envelop Header Simple Mail Transfer Protocol (cont.) CMPT 471 2003-3
Simple Mail Transfer Protocol (cont.) • Mail transfer • The process of transferring a mail has 3 phases • Connection establishment • Mail transfer • Connection termination CMPT 471 2003-3
Simple Mail Transfer Protocol (cont.) MTA client MTA server TCP XXXXX TCP 25 TCP connection ready 220 service ready Email transfer connection establishment HELO: site1.com 250 OK … mail transfer … QUIT Email transfer connection termination 221 service closed CMPT 471 2003-3
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 User A User B Non-ASCII Non-ASCII MIME MIME 7-bit NVT ASCII 7-bit NVT ASCII 7-bit NVT ASCII SMTP SMTP CMPT 471 2003-3
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 CMPT 471 2003-3
MIME Extensions (cont.) CMPT 471 2003-3
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 Z I E 5 CMPT 471 2003-3
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 Mixed ASCII & non-ASCII data ASCII data CMPT 471 2003-3
Local SMTP server Remote SMTP server SMTP client Stage 1 (SMTP) Stage 2 (SMTP) Mail box Mail access server Mail access client Stage 3 (Mail Access Protocol) Mail Access Protocols • Mail delivery CMPT 471 2003-3
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) CMPT 471 2003-3
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 CMPT 471 2003-3
Mail Access Protocols (cont.) User computer Mail server POP3 client POP3 server TCP XXXXX TCP 110 User-name OK Password OK List Email # and sizes Retrieve 1 Email 1 …… Retrieve N CMPT 471 2003-3 Email N
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 email 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 email storage CMPT 471 2003-3