Title: Electronic Mail
1Electronic Mail
2Electronic Mail
- Most successful Internet application
- Used to transmit messages from one person to
another or from one person to many people - Initially these were text only messages
- Today these messages make include pictures,
advanced text markup (like different fonts and
colors) or file attachments (like Word or Excel
files) - On the Internet, most email systems are built on
a client, server, protocol architecture and
follow Internet standards - Some organizations use proprietary email
systems that incorporate additional features like
calendaring or workflow, well talk about them
later
3Email Clients, Servers, Protocols
- The client is the email program the user utilizes
(pine, elm, mail on Unix or Eudora, PC Pine,
Netscape, Outlook, Outlook Express on PCs) - In the case of email there isnt one email server
and one email protocol, there are several servers
and protocols. Each is responsible for a
different part of the process. - Generally speaking the mail sending and receiving
function is handled by one service and protocol
(SMTP) - Another service and protocol is used to retrieve
messages from the users mailbox so they can be
displayed, deleted, etc. Those protocols are POP
(Post Office Protocol) and IMAP (Internet Mail
Access Protocol)
4Common Email delivery scenario
Mail server 2isp2.com
Mail server 1isp1.com
Stored Here untilUserConnects
5Delivery
- There are many variations on that scenario and we
will discuss some of them later - But first lets look at the pieces in more detail
6Start with the client
- This is the software the user uses to send and
receive email. (Pine, Outlook Express, etc.) - Gives you your user-interface and feature set
- Clients may be Unix based, PC or Mac based,
dumb-terminal/character applications, GUI
programs, or Web based - No matter what they look like on the outside, on
the inside they all have to do the same thing to
send mail on the Internet which is.. - They all must talk SMTP
7Email Client Features
- Common
- alias and alias-lists, (address books)
- folders
- forwarding, carbon copies (cc/bcc), reply
- file inclusion, attachments
- signature file...signature-file
- Not there yet
- Security (PGP, S/MIME, possible technologies but
not widely used) - Authentication (Digital certificates possible
technologies but again not widely used)
8Email Addresses
- Internet standard
- userid_at_host.domain
- such as barker_at_u.washington.edu
- Some variations are possible like
- Scott.Barker_at_xyz.com
- 12345.65362_at_xyz.com
- In the old days many people in education used
something called Bitnet - Addresses looked like barker_at_washington or
- Barker_at_washington.bitnet
- Used a store and forward mechanism to deliver
mail - In the commercial world there were competing
alternatives like MCIMail, CompuServe each had
its own address format and couldnt talk to the
other!
9Finding Email Addresses
- Usually you just ask!
- Were some crude old tools like
- finger (UNIX)
- Netfind
- telnet ds.internic.net not there anymore
- Recently have appeared servers on the web that
let you look for email addresses. - www.bigfoot.com, people.yahoo.com
- Often they support a protocol called LDAP
(Lightweight Directory Access Protocol) that
allows you to query them inside your mail client.
- UW offers an LDAP service that can be very
useful.
10Email Clients - Unix Pine
- At the Unix prompt type pine
- Note Where is this program running (on your PC
or on the Unix machine)? - Does the mouse work? (Why or why not)?
- C for compose a message
- Fill in To, Subject
- Return takes you into message body
- Ctrl-X to send it (see bottom of screen)
- Send a message to your neighbor
- Note the TO line syntax of user_at_host.domain
11Additional Basic Pine functionality
- Inbox
- Deleting Messages
- Using Folders
- Reply forward
- Address book
- Play and experiment on your own if interested
12How about the original?
- Pine is actually a very sophisticated email
program for Unix and Pine was developed here at
UW. Before Pine many used the standard Unix mail
program called mail, on Dante there is a
similar program still available called mailx - In this weeks exercise I ask you to try the
mailx program - You will see that there are very limited editing
capabilities, and some no so intuitive things
for example you end a message by placing a . at
the beginning of a new line - Obviously mail didnt have the best UI.
Another popular Unix mail program called elm
became popular at many sites. Pine stands for
...
13Delivering the message
- Once you have composed and sent an email
message on a Unix based system, your message is
usually placed in an outgoing mail queue folder - A server process running on your box checks that
folder periodically and if it finds an outgoing
message, it initiates an SMTP connection to the
destination mail server - The most commonly used SMTP server software on
Unix is probably sendmail although there are
many other options - If the destination SMTP server is up and running
accepting incoming connections, the message will
be delivered immediately - If the destination is not accepting SMTP incoming
connections the message will be placed back into
the outgoing mail folder and queued-up for
another attempt (usually 10-15 minutes later) - If the message cannot be delivered after some
period of time (typically 3 days) it is returned
to the sender as undeliverable
14SMTP
- Simple Mail Transport Protocol
- Originally defined by RFC 821 in 1982 with a
modified standard (RFC 2821) proposed in 2001 - Defines a host to host mail transport and
delivery protocol - SMTP servers may be the source or final
destination for a message or they may relay
mail for others. - Today mail relaying is often allowed in only
limited situations, i.e. an SMTP server like UWs
server may only relay mail for machines that
connect to it from the UW Network. This prevents
spammers from using our server to distribute
their mail.
15SMTP Details
- SMTP servers connect and listen on port 25
- SMTP is a text based protocol with commands
like - HELO (or EHLO in the newest version)MAIL
FROMRCPT TO
DATAQUIT
16Seeing the Protocol in Action
- The mailx program has a -v (for verbose) option
that allows you to watch the SMTP protocol in
action. - If I used that option I would see something like
(see next page)
17homer04 mailx -v scott_at_ils.unc.edu Subject
Test This is a test message . Cc scott_at_ils.unc.ed
u... Connecting to mailscan-out1.cac.washington.ed
u. via relay.. . 220 mailscan-out1.cac.washington.
edu WebShield SMTP V4.5 MR1a Network Associates ,
Inc. Ready at Sun Sep 08 132706 2002 EHLO
homer04.u.washington.edu 502 Command not
Supported HELO homer04.u.washington.edu 250
mailscan-out1.cac.washington.edu Welcome
homer04.u.washington.edu MAIL
From 250
... OK RCPT
To 250
... OK DATA 354 Enter mail, end with "." on a
line by itself . 250 Mail accepted scott_at_ils.u
nc.edu... Sent (Mail accepted) Closing connection
to mailscan-out1.cac.washington.edu. QUIT 221
mailscan-out1.cac.washington.edu closing
Connection homer04
18Faking mail.
- Since SMTP is a text based protocol, it is
possible to connect directly to the SMTP port on
a mail server and talk SMTP. - The well known port for SMTP is 25
- telnet mailhost.u.washington.edu 25
- In exercise 7 I have asked you to do this. You
will be acting as a mail client and issuing SMTP
commands directly to the server
19Looking at our fake message
- If we looked at our message in Pine or Outlook,
could we tell it is a fake message? - We can turn on full headers in Pine to see
more. - Setup, Config, check the option to
enable-full-header-command - Then when viewing a message hit H to see the full
header - Note Not all SMTP servers are configured to do a
reverse lookup of the sending machines IP
address (recall the pleased to meet you line.
And that the UW server noticed the real machine
we were connecting from.) Without that, a
forgery could be completely hidden even if you
looked at the full headers of the mail
20More on SMTP
- The S in SMTP stands for SIMPLE
- SMTP needs add-ons for
- security/privacy (PGP or S/MIME)
- binary attachments (MIME)
- Again, SMTP is only involved in the delivery of
mail from one mail server to another. It has
nothing to do with how you read the mail once it
arrives. - POP and IMAP are protocols for PC/Mac based
clients to retrieve mail off the server once it
has arrived. - Well discuss those later
21Where does mail go whenit gets to the
destination mail server?
- Remember that SMTP simply delivers mail. As it
arrives a couple things have to happen. - First there is a check - does this mail need to
be forwarded elsewhere? On Unix there is an
/etc/aliases file for the administrator to setup
forwarding - Alternatively on some systems the user can do it
themselves by creating their own .forward file.
In that the user enters the address they want to
forward to. Other systems use different
forwarding options, for example on Dante you
select forward from their main menu when you
login - One caution, if you forward, be careful not to
create forwarding loops!
22If it isnt forwarded
- Mail has to be placed somewhere so the user or
the mail client can retrieve it later - On Unix there is typically a special directory
where incoming mail is stored. Often this is
/var/mail - Typically each user has a single file in
/var/mail and all their messages are appended
together into that one file with each message
separated by a header (From and To
information) - On Dante the location where your mail is
delivered is actually hidden from you so they can
move things around as needed to distribute the
load - On PC based servers mail also usually just goes
into a folder, or alternatively it may be added
to a database for later retrieval. - The precise delivery location on either platform
depends on the server software that is running
and how that mail server has been configured by
the system administrator - End users normally would not look in these
locations themselves, instead a mail client will
either access the location through the file
system, or use a protocol like POP, or IMAP to
request messages from the server and display them
to the user
23The entire mail delivery process
- User uses a mail client to compose
- That client turns the message over to a mail
server that will try and deliver the mail - The mail server uses the SMTP protocol to talk to
another mail server at the destination - The destination mail server also talks SMTP and
it either accepts or forwards the mail elsewhere - If mail stays at destination, the destination
server stores the message waiting for the user to
read it - Destination user runs their mail client which
checks their inbox for new mail, parses
messages, and provides nice or not nice user
interface! This is done using another protocol,
POP or IMAP.
24Back to the diagram
sue_at_isp2.com
mary_at_isp1.com
SMTP
Why do we need intermediary SMTP servers to
deliver mail and additional protocols
for retrieving and displaying messages from a
mail server? Why not just connect directly
to the destination machine to deliver the mail
our host/PC to their host/PC ?
25Mail exchange without an intermediary.
- Possible but.
- What address do we use? Recall that many hosts
have dynamic IP addresses and most PCs do not
have IP names that are registered in DNS - What if the destination is not on or up?
- What if the destination is not running an SMTP
server that is listening for incomming
connections? - How do we effectively queue messages up for later
delivery since our own machine may be powered off
on occasion? - What if we turn off our machine, how will we
receive new mail? - As a result of these and other issues, PCs email
clients are configured with an SMTP Server that
will act as an intermediary for sending messages.
They also are configured to use a POP or
IMAP server to receive incoming messages.
Sometimes these may be the same box, sometimes
they are different.
26End of Part 1 on email