• Review: – How do we address “a network end-point”? – What services are provided by the Internet? – What is the network logical topology observed by a network application? – Describe how an application is associated with a network end-point. – What is the sequence of system calls in a server? – What is the sequence of system calls in a client? – When is the connection established? • This class: – the email system Electronic Mail user mailbox Four major components: • • • • user agents mail servers Internet message format mail transfer protocol: SMTP User Agent • a.k.a. “mail reader” • composing, editing, reading mail messages • e.g., Eudora, Outlook, elm, Netscape Messenger • outgoing, incoming messages stored on server outgoing message queue user agent mail server SMTP SMTP mail server user agent SMTP user agent user agent mail server user agent user agent Electronic Mail: mail servers Mail Servers • mailbox contains incoming messages for user • message queue of outgoing (to be sent) mail messages • SMTP protocol between mail servers to send email messages – client: sending mail server – “server”: receiving mail server user agent mail server SMTP SMTP mail server user agent SMTP user agent user agent mail server user agent user agent Electronic Mail: SMTP [RFC 2821] • uses TCP to reliably transfer email message from client to server, port 25 • direct transfer: sending server to receiving server • three phases of transfer – handshaking (greeting) – transfer of messages – closure • command/response interaction – commands: ASCII text – response: status code and phrase • messages must be in 7-bit ASCII Scenario: Alice sends message to Bob 1) Alice uses UA to compose message and “to” bob@someschool.ed u 2) Alice’s UA sends message to her mail server; message placed in message queue 3) Client side of SMTP opens TCP connection with Bob’s mail server 1 user agent 2 mail server 3 4 4) SMTP client sends Alice’s message over the TCP connection 5) Bob’s mail server places the message in Bob’s mailbox 6) Bob invokes his user agent to read message mail server 5 6 user agent • SMTP commands: – – – – – – HELO MAIL FROM RCPT TO DATA QUIT And some others Sample SMTP interaction S: C: S: C: S: C: S: C: S: C: C: C: S: C: S: 220 hamburger.edu HELO crepes.fr 250 Hello crepes.fr, pleased to meet you MAIL FROM: <alice@crepes.fr> 250 alice@crepes.fr... Sender ok RCPT TO: <bob@hamburger.edu> 250 bob@hamburger.edu ... Recipient ok DATA 354 Enter mail, end with "." on a line by itself Do you like ketchup? How about pickles? . 250 Message accepted for delivery QUIT 221 hamburger.edu closing connection Try SMTP interaction for yourself: • telnet servername 25 • see 220 reply from server • enter HELO, MAIL FROM, RCPT TO, DATA, QUIT commands above lets you send email without using email client (reader) A few words about SMTP • SMTP uses persistent connections • SMTP requires message (header & body) to be in 7-bit ASCII • SMTP server uses CRLF.CRLF to determine end of message • To facilitate user communication (between different user agents), we need a uniform message format in addition to SMTP. Mail message format [RFC 822] RFC 822: standard for text message format: • header lines, e.g., – To: – From: – Subject: different from SMTP commands! • body – the “message”, ASCII characters only header body blank line Message format: multimedia extensions • MIME: multimedia mail extension, RFC 2045, 2056 • additional lines in msg header declare MIME content type MIME version method used to encode data multimedia data type, subtype, parameter declaration encoded data From: alice@crepes.fr To: bob@hamburger.edu Subject: Picture of yummy crepe. MIME-Version: 1.0 Content-Transfer-Encoding: base64 Content-Type: image/jpeg base64 encoded data ..... ......................... ......base64 encoded data In the mail folder, more header lines are usually added: Date: Wed, 24 Aug 2005 16:42:15 -0400 (EDT) From: Xin Yuan <xyuan@cs.fsu.edu> To: Xin Yuan <xyuan@cs.fsu.edu> Subject: example Message-ID: <Pine.GSO.4.61.0508241642001.1679@diablo.cs.fsu.edu> MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII; format=flowed X-Spam-Checker-Version: SpamAssassin 2.63 (2004-01-11) on mail.cs.fsu.edu X-Spam-Level: X-Spam-Status: No, hits=-4.9 required=8.0 tests=BAYES_00 autolearn=no version=2.63 Status: RO X-Status: X-Keywords: X-UID: 1 This is an example. - xin Mail access protocols user agent SMTP SMTP sender’s mail server access protocol user agent receiver’s mail server • SMTP: delivery/storage to receiver’s server • Mail access: – Sharing the file system with the server. – No common file system, need mail access protocol • POP: Post Office Protocol [RFC 1939] – authorization (agent <-->server) and download • IMAP: Internet Mail Access Protocol [RFC 1730] – manipulation of stored msgs on server • HTTP: Hotmail , Yahoo! Mail, etc. POP3 protocol authorization phase • • client commands: – user: declare username – pass: password server responses – +OK – -ERR transaction phase, client: • • • • list: list message numbers retr: retrieve message by number dele: delete quit S: C: S: C: S: C: S: S: S: C: S: S: C: C: S: S: C: C: S: +OK POP3 server ready user bob +OK pass hungry +OK user successfully logged on list 1 498 2 912 . retr 1 <message 1 contents> . dele 1 retr 2 <message 1 contents> . dele 2 quit +OK POP3 server signing off • The UNIX mail utility and its implementation issues. – Read message • Mail folder format – Compose • SMTP requires Sender/Receiver • Message body. – – – – Reply Forward List …