Title: Simple Mail Transfer Protocol (SMTP)
1Simple Mail Transfer Protocol(SMTP)
- Kanika Thapar
- CISC 856 TCP/IP and Upper Layer Protocols
- 11/8/2007
- (Some slides provided by Ezra Kissel, some
figures taken from Forouzans book)
2Overview
- Introduction
- Sendmail
- How SMTP works?
- SMTP data transfer
- Examples
- Limitations extensions
- Retrieving mail (Mailbox protocols)
3Introduction
4Collects mail and delivers to user agent
Transfers mails from one host to another
Introduction
Transfers mails from one host to another
Collects mail and delivers to user agent
Composes, reads, replies to ,forwards and handles
mailboxes
5Message transfer
SMTP is a push protocol
6Sendmail
- Mail Transfer Agent MTA is a computer program
or software agent that transfers electronic mail
messages from one computer to another. - Sendmail is a MTA
- Supports several mail transfers including SMTP
- Pros
- Can perform header rewriting, mail routing
- Extensive support available
- Cons
- Not secure
- Code is bulky compared to other MTAs such as
qmail
7Relays and Gateways
- SMTP server can also assume the role of a relay
- SMTP mail gateways are used to transport mail
prepared by a protocol other than SMTP
Non-SMTP supported
SMTP supported
8How SMTP works?
Command format
Keyword argument(s)
Response format
3-digit status code textual information
Link Layer PCI
Link Layer PCI
IP-PCI
IP-PCI
TCP-PCI
TCP-PCI
TCP-PCI
SMTP command/response
SMTP command/response
SMTP command/response
9SMTP A-PDUs
The Basics
The Extras
Keyword Arguments
HELO Senders host domain name
MAIL FROM Email address of sender
RCPT TO Email of intended recipient
DATA Body of the message
QUIT
Keyword Arguments
RSET
VRFY Name to be verified
NOOP
TURN
EXPN Mailing list to expand
HELP Command name
10How SMTP works Status Codes
- The Server responds with a 3 digit code that may
be followed by text info - 2 - Success
- 3 - Command can be accepted with more
information - 4 - Command was rejected, but error
condition is temporary - 5 - Command rejected, Bad User!
11Traditional mail vs email
E-mail envelope and body
Traditional mail envelope and body
12Connection Establishment
SYN
SYNACK
Port 25
Ephemeral port
Port 25
Ephemeral port
SYN
13Ephemeral port
Port 25
14Connection Termination
Port 25
Ephemeral port
FIN
ACK
RESET
15Simulating MTA client using telnet
telnet mail.adelphia.net 25Trying
68.168.78.100...Connected to mail.adelphia.net
(68.168.78.100).
ConnectionEstablishment
220 mta13.adelphia.net SMTP server ready Thur, 8
Nov 2007 ..HELO mail.adelphia.net 250
mta13.adelphia.net
Envelope
MAIL FROM forouzanb_at_adelphia.net 250 Sender
ltforouzanb_at_adelphia.netgt OkRCPT TO
thapar_at_udel.edu 250 Recipient ltthapar_at_udel.edugt
Ok
16Simulating MTA client using telnet
Header and Body
DATA 354 Ok Send data ending with
ltCRLFgt.ltCRLFgtFrom ForouzanTO ThaparThis is a
test messageto show SMTP in action.. 250
Message received adelphia.net_at_mail.adelphia.net
Connection Termination
QUIT 221 mta13.adelphia.net SMTP server closing
connection Connection closed by foreign host.
17Limitations in SMTP
- Only uses NVT 7 bit ASCII format
- How to represent other data types?
- Susceptible to misuse (Spamming,
- faking sender address)
18Solution SMTP extensions
- MIME Multipurpose Internet Mail Extensions
- Transforms non-ASCII data to NVT (Network Virtual
Terminal) ASCII data
19MIME headers
20MIME headers (contd)
- Content-Type Type of data used in the Body
- Text plain, unformatted text HTML
- Multipart Body contains different data types
- Message Body contains a whole, part, or pointer
to a message - Image Message contains a static image (JPEG,
GIF) - Video Message contains an animated image (MPEG)
- Audio Message contains a basic sound sample
(8kHz) - Application Message is of data type not
previously defined - Content-Transfer-Encoding How to encode the
message - 7 bit no encoding needed
- 8 bit Non-ASCII, short lines
- Binary Non-ASCII, unlimited length lines
- Base64 6 bit blocks encoded into 8-bit ASCII
- Quoted-printable send non-ASCII characters as 3
ASCII characters
21Base64 Encoding
- Divides binary data into 24 bit blocks
- Each block is then divided into 6 bit chunks
- Each 6-bit section is interpreted as one character
11001100 10000001 00111001
110011 001000 000100 111001
(51)
(8)
(4)
(57)
(z)
(I)
(E)
(5)
01111010
01001001
01000101
00110101
22Base64 Encoding table
23Multipart, Encoded MIME Message
From Kanika Thapar ltthapar_at_udel.edugt To
thapar_at_udel.edu Subject attachment
test MIME-Version 1.0 Content-Type
MULTIPART/MIXED boundary"MIMEStream_092061_793
033260215529_597673089" --MIMEStream_092061_793
033260215529_597673089 Content-Type TEXT/PLAIN
charset"US-ASCII" formatflowed There is an
image attached... --MIMEStream_092061_7930332602
15529_597673089 Content-Type IMAGE/jpeg
name"test.jpg" Content-Transfer-Encoding
base64 Content-Disposition attachment
filename"test.jpg" /9j/4AAQSkZJRgABAgEASABIAAD/4
QNxRXhpZgAATU0AKgAAAAgABwESAAMA AAABAAEAAAEaAAUAAA
ABAAAAYgEbAAUAAAABAAAAagEoAAMAAAABAAIAAAEx osv/0
I5nPvr7sVdirsVf/9GO5z766hxQ1il2Kv/0o5nPvr7eKtYq7F
X/9k --MIMEStream_092061_793033260215529_597673
089--
24Mail Access Protocols POP3 IMAP4
POP3 IMAP4
SMTP
SMTP
25POP3
26Post Office Protocol v3
- Allows the user to obtain a list of their Emails
- Users can retrieve their emails
- Users can either delete or keep the email on
their system - Minimizes server resources
27Internet Mail Access Protocol v4
- User can check the email header before
downloading - Can search the email for a specific string of
characters before downloading - User can download parts of an email
- User can create, delete, or rename mailboxes on a
server
28Quoted-Printable Encoding
- Used when the data has a small non-ASCII portion
- Non-ASCII characters are sent as 3 characters
- First is , second and third are the hex
representation of the byte - , is the hex representation of the byte
01001100 10011101 00111001
()
(9)
(D)
00111101
00111001
01000100
29ASCII table