Title: Internet Engineering Course
1Internet Engineering Course
2Electronic 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
3SMTP Concept
4User Agents and Mail Transfer Agents
5Relay MTAs
6Mail Gateways
7The Entire E-mail System
8SMTP
- 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
9Sample SMTP interaction
c\Telnet payk.ui.ac.ir 25
10(No Transcript)
11SMTP
- 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
12Basic Operation
- Mail created by user agent program (mail client)
- Message consists of
- Header containing recipients 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)
13Mail 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
14SMTP 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
15Optimization
- 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
16Possible 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
17SMTP 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
18SMTP 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
19SMTP 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
20Conversation
- 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
21SMTP Mail Flow
22SMTP System Overview
- Commands and responses between sender and
receiver - Initiative with sender
- Establishes TCP connection
- Sender sends commands to receiver
- e.g. HELOltSPgtltdomaingtltCRLFgt
- Each command generates exactly one reply
- e.g. 250 requested mail action ok completed
23SMTP Replies
- Leading digit indicates category
- Positive completion reply (2xx)
- Positive intermediate reply (3xx)
- Transient negative completion reply (4xx)
- Permanent negative completion reply (5xx)
24Operation Phases
- Connection setup
- Exchange of command-response pairs
- Connection termination
25Connection Setup
- Sender opens TCP connection with receiver
- Once connected, receiver identifies itself
- 220 ltdomaingt service ready
- Sender identifies itself
- HELO
- Receiver accepts senders identification
- 250 OK
- If mail service not available, step 2 above
becomes - 421 service not available
26Mail 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 (.)
27Closing Connection
- Two steps
- Sender sends QUIT and waits for reply
- Then initiate TCP close operation
- Receiver initiates TCP close after sending reply
to QUIT
28Electronic 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_at_computer
29E-mail message format
- Simple two-part format
- Header includes delivery information
- Body carries text of message
- Header and body is separated by blank line
30E-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
31Data in E-mail
- Original Internet mail carried only 7-bit ASCII
data - Couldnt 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
32Multipurpose 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.
33MIME
- 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 BoundaryMime_separator - Separator line gives information about specific
encodingContent-Type text/plain
34MIME (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
35MIME
36Overview of MIME
- Five new message header fields
- MIME version
- Content type
- Content transfer encoding
- Content Id
- Content Description
37Content 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
38MIME 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
39Message 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
40Multipart Type
From alice_at_crepes.fr To bob_at_hamburger.edu
Subject Picture of yummy crepe. MIME-Version
1.0 Content-Type multipart/mixed
boundary98766789 --98766789 Content-Transfer-En
coding 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?
41Printable Encoding of Binary Data into Radix-64
Format
42Programs as mail recipients
- Can arrange for e-mailbox to be associated with a
program rather than a users 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
43Mailing 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
44Mail 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
45Mail 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
46Mailbox 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
47Mail 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)
- Cant use SMTP because getting messages is a pull
operation SMTP is a push protocol.
48Post 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
49POP3 and SMTP
50POP3
- 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.
51POP3
- Doesnt provide extensive mail operations on the
server - Normally mail is downloaded, then deleted
- Deletion doesnt really occur until QUIT
- Uses port 110
52POP3
- Three phases
- Authorization
- Transaction
- Update
- During a POP3 session, the server maintains state
information - POP3 downloads mail messages to the local machine
not good for nomadic user
53POP3 protocol
S OK POP3 server ready C user bob S OK
C pass hungry S OK user successfully logged
on
- 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
C list S 1 498 S 2 912
S . C retr 1 S ltmessage 1
contentsgt S . C dele 1 C retr
2 S ltmessage 1 contentsgt S .
C dele 2 C quit S OK POP3 server
signing off
54Dialup Access and POP
- POP is useful for dialup connection
- Users computer not always connected
- Can download all mail at once and read off-line
- Can compose mail off-line and mail in one
connection
55Minimal POP3 Commands
- USER name users name
- PASS string users password
- QUIT quits, and updates the mailbox
- STAT status
- LIST msg lists the mail messages (s only)
- RETR msg retrieves a mail message
- DELE msg deletes a message
- NOOP No operation
- RSET resets the mail to its original state
56IMAP
- Internet Mail Access Protocol
- Allows users to manipulate remote mailboxes
- Must maintain info about user (e.g., folder
hierarchy) even after the user quits - IMAP server is always in 1 of 4 states
- Nonauthenticated
- Authenticated
- Selected
- Logout
57POP3 (more) and IMAP
- More about POP3
- Previous example uses download and delete mode.
- Bob cannot re-read e-mail if he changes client
- Download-and-keep copies of messages on
different clients - POP3 is stateless across sessions
- IMAP
- Keep all messages in one place the server
- Allows user to organize messages in folders
- IMAP keeps user state across sessions
- names of folders and mappings between message IDs
and folder name
58Security
- SMTP, POP3 and IMAP are plain text protocols
- Secured version available to protect the user
- SMTPS
- POP3s
- Need to be configured both on server and client
59Stunnel
- Name of an application/service
- Even if the mail server application does not
implement secure version - What does it do?
- gathers the encrypted message from client
- Decrypts the data
- Sends plain text data using a local connection to
insecure port - Server application considers it a normal client
60STunneling
Send decrypted data to port 25 of the server
Stunnel (on server) Listening to port 995
Encrypted data (Command/mail body)
Client
Server
61Web interface
- Nowadays there are many web interface user agents
- They allow accessing messages from any client
with only a web browser - However the interface is not as sophisticated as
special mail agents - But it is very useful if you need to check your
emails from different computers
62Summary for Email
- Electronic mail allows quick, asynchronous
communication across entire Internet - Can attach e-mail addresses to programs for
processing - Mailing lists
- Other client-server applications
- Simple Mail Transfer Protocol (SMTP) is Internet
standard for mail delivery - Mail gateways
- Provide uniform user addressing outside
organizations - Translate from Internet mail (e.g. SMTP) to
proprietary systems - Post Office Protocol (POP) and Internet Mail
Access Protocol (IMAP) allow remote access to
electronic mailboxes.