620 likes | 789 Views
Internet Engineering Course. Electronic Mail. Electronic Mail. Most heavily used application on any network Uses client-server architecture Electronic mail client accepts mail from user and delivers to server on destination computer Many variations and styles of delivery
E N D
Internet Engineering Course Electronic Mail
Electronic Mail • Most heavily used application on any network • Uses client-server architecture • Electronic mail client accepts mail from user and delivers to server on destination computer • Many variations and styles of delivery • Simple Mail Transfer Protocol (SMTP) • TCP/IP • Delivery of simple text messages • Multi-purpose Internet Mail Extension (MIME) • Delivery of other types of data • Voice, images, video clips
SMTP • Simple Mail Transfer Protocol is standard application protocol for delivery of mail from source to destination • Built on top of TCP: provides reliable delivery of data • SMTP does not normally use intermediate mail servers for sending mail • SMTP uses persistent connections • Other functions: • E-mail address lookup • E-mail address verification • Example protocol exchange
Sample SMTP interaction c:\Telnet payk.ui.ac.ir 25
SMTP • RFC 821 • Not concerned with format of messages or data • Covered in RFC 822 (see later) • SMTP uses info written on envelope of mail • Message header • Does not look at contents • Message body • Except: • Standardize message character set to 7 bit ASCII
Basic Operation • Mail created by user agent program (mail client) • Message consists of: • Header containing recipient’s address and other info • Body containing user data • Messages queued and sent as input to SMTP sender program • Typically a server process (daemon on UNIX)
Mail Message Contents • Each queued message has: • Message text • RFC 822 header with message envelope and list of recipients • Message body, composed by user • A list of mail destinations • Derived by user agent from header • May be listed in header • May require expansion of mailing lists • May need replacement of mnemonic names with mailbox names • If BCCs indicated, user agent needs to prepare correct message format
SMTP Sender • Takes message from queue • Transmits to proper destination host • Via SMTP transaction • Over one or more TCP connections to port 25 • Host may have multiple senders active • When delivery complete, sender deletes destination from list for that message • When all destinations processed, message is deleted
Optimization • If message destined for multiple users on a given host, it is sent only once • Delivery to users handled at destination host • If multiple messages ready for given host, a single TCP connection can be used • Saves overhead of setting up and dropping connection
Possible Errors • Host unreachable • Host out of operation • TCP connection fail during transfer • Sender can re-queue mail • Give up after a period • Faulty destination address • User error • Target user changed address • Redirect if possible • Inform user if not
SMTP Protocol - Reliability • Used to transfer messages from sender to receiver over TCP connection • Attempts to provide reliable service • No guarantee to recover lost messages • No end to end acknowledgement to originator • Error indication delivery not guaranteed • Generally considered reliable
SMTP Receiver • Accepts arriving message • Places in user mailbox or copies to outgoing queue for forwarding • Receiver must: • Verify local mail destinations • Deal with errors • Transmission • Lack of disk space • Sender responsible for message until receiver confirm complete transfer • Indicates mail has arrived at host, not user
SMTP Forwarding • Mostly direct transfer from sender host to receiver host • May go through intermediate machine via forwarding capability • Sender can specify route • Target user may have moved
Conversation • SMTP limited to conversation between sender and receiver • Main function is to transfer messages • Rest of mail handling beyond scope of SMTP • May differ between systems
SMTP System Overview • Commands and responses between sender and receiver • Initiative with sender • Establishes TCP connection • Sender sends commands to receiver • e.g. HELO<SP><domain><CRLF> • Each command generates exactly one reply • e.g. 250 requested mail action ok; completed
SMTP Replies • Leading digit indicates category • Positive completion reply (2xx) • Positive intermediate reply (3xx) • Transient negative completion reply (4xx) • Permanent negative completion reply (5xx)
Operation Phases • Connection setup • Exchange of command-response pairs • Connection termination
Connection Setup • Sender opens TCP connection with receiver • Once connected, receiver identifies itself • 220 <domain> service ready • Sender identifies itself • HELO • Receiver accepts sender’s identification • 250 OK • If mail service not available, step 2 above becomes: • 421 service not available
Mail Transfer • Sender may send one or more messages to receiver • MAIL command identifies originator • Gives reverse path to used for error reporting • Receiver returns 250 OK or appropriate fail/error message • One or more RCPT commands identifies recipients for the message • Separate reply for each recipient • DATA command transfers message text • End of message indicated by line containing just period (.)
Closing Connection • Two steps • Sender sends QUIT and waits for reply • Then initiate TCP close operation • Receiver initiates TCP close after sending reply to QUIT
Electronic Mailboxes and Addresses • E-mail users have an electronic mailbox into which mail is deposited • Usually associated with computer account; one user may have different electronic mailboxes • User accesses mail with a mail reader program • Electronic mailbox is identified by an e-mail address mailbox@computer
E-mail message format • Simple two-part format • Header includes delivery information • Body carries text of message • Header and body is separated by blank line
E-mail Headers • Lines of text in format keyword: information • keyword identifies information; information can appear in any order • Essential information: • To: list of recipients • From: sender • Cc: list of copy recipients • Useful information • Reply-to: different address than From: • Received-by: for debugging • Frivolous information: • Favorite drink: lemonade • Phase-of-the-moon: gibbous
Data in E-mail • Original Internet mail carried only 7-bit ASCII data • Couldn’t contain arbitrary binary values; e.g., executable program • Techniques for encoding binary data allowed transport of binary data • Uuencode: three 8-bit binary values as four ASCII characters (6 bits each) • Also carries file name and protection information • Incurs 33% overhead
Multipurpose Internet Mail Extension (MIME) • Extension to RFC822 • SMTP can not transmit executables • Uuencode and other schemes are available • Not standardized • Can not transmit text including international characters (e.g. â, å, ä, è, é, ê, ë) • Need 8 bit ASCII • Servers may reject mail over certain size • Translation between ASCII and EBCDIC not standard • Some SMTP implementations do not adhere to standard • CRLF, truncate or wrap long lines, removal of white space, etc.
MIME • Multipart Internet Mail Extensions - Extends and automates encoding mechanisms • Allows inclusion of separate components – programs, pictures, audio clips – in a single mail message • Sending program identifies the components so receiving program can automatically extract and inform mail recipient • Header includesMIME-Version: 1.0Content-Type: Multipart/Mixed; Boundary=Mime_separator • Separator line gives information about specific encodingContent-Type: text/plain
MIME (cont.) • MIME is extensible – sender and receiver agree on encoding scheme • MIME is compatible with existing mail systems • Everything encoded as ASCII • Headers and separators ignored by non-MIME mail systems • MIME encapsulates binary data in ASCII mail envelope
Overview of MIME • Five new message header fields • MIME version • Content type • Content transfer encoding • Content Id • Content Description
Content Types • Text body • Multipart • Mixed, Parallel, Alternative, Digest • Message • RFC 822, Partial, External-body • Image • jpeg, gif • Video • mpeg • Audio • Basic • Application • Postscript • octet stream
MIME Transfer Encodings • Reliable delivery across wide largest range of environments • Content transfer encoding field • Six values • Three (7bit, 8bit, binary) no encoding done • Provide info about nature of data • Quoted-printable • Data largely printable ASCII characters • Non-printing characters represented by hex code • Base64 • Maps arbitrary binary input onto printable output • X-token • Named nonstandard encoding
MIME: multimedia mail extension, RFC 2045, 2056 additional lines in msg header declare MIME content type 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 Message format: multimedia extensions MIME version method used to encode data multimedia data type, subtype, parameter declaration encoded data
Multipart Type From: alice@crepes.fr To: bob@hamburger.edu Subject: Picture of yummy crepe. MIME-Version: 1.0 Content-Type: multipart/mixed; boundary=98766789 --98766789 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain Dear Bob, Please find a picture of a crepe. --98766789 Content-Transfer-Encoding: base64 Content-Type: image/jpeg base64 encoded data ..... ......................... ......base64 encoded data --98766789-- Break into parts? Compare with HTTP? 2: Application Layer
Programs as mail recipients • Can arrange for e-mailbox to be associated with a program rather than a user’s mail reader • Incoming mail automatically processed as input to program • Example – mailing list subscription administration • Can be used to implement client-server processing • Client request in incoming mail message • Server response in returned mail reply
Mailing Lists and Forwarders • E-mail addresses can be attached to programs as well as electronic mailboxes • Mail exploder or mail forwarder resends copies of message to e-mail addresses in mailing list • UNIX mail program sendmail provides mail aliases • Mailing list processor, e.g. listserv, can also interpret subscription management commands
Mail Gateways • Mailing list processing may take significant resources in large organizations • May be segregated to a dedicated server computer: mail gateway • Provides single mail destination point for all incoming mail • Can use MX records in DNS to cause all mail to be delivered to gateway
Mail gateways and forwarding • Users within an organization may want to read mail on local or departmental computer • Can arrange to have mail forwarded from mail gateway • Message now makes multiple hops for delivery • Hops may be recorded in header • Forwarded mail may use proprietary (non-SMTP) mail system
Mailbox Access • Where should mailbox be located? • Users want to access mail from most commonly used computer • Cannot always use desktop computer as mail server • Not always running • Requires multitasking OS • Requires local disk storage • Can TELNET to remote computer with mail server • Can use WEB based interfaces to access mailbox
Mail Access Protocols • Instead of TELNET, use protocol that accesses mail on remote computer directly • Mail access protocol transfers mail from server to local PC • 2 popular protocols: • POP3 (Post Office Protocol v3) • IMAP (Internet Mail Access Protocol) • Can’t use SMTP because getting messages is a pull operation & SMTP is a push protocol.
Post Office Protocol (POP) • TCP/IP suite includes Post Office Protocol (POP) for remote mailbox access • Computer with mailboxes runs POP server • User runs POP client on local computer • POP client can access and retrieve messages from mailbox • Requires authentication (password) • Local computer uses SMTP for outgoing mail
POP3 • Stands for Post Office Protocol – Version 3 • RFC in 1993 • POP3 “is intended to permit a workstation to dynamically access a maildrop on a server host in a useful fashion. Usually, this means that the POP3 protocol is used to allow a workstation to retrieve mail that the server is holding for it.“