TO BE IMPROVED ....
=========================================================
Terminology and Concepts
email client <-> email server
UA(user agent): provide user interface to the email system, provide facility to create, send and receive (e-mail) messages.
UA client <-> UA server
MS(message store): a data base on a email server containing a set of mail boxes
MTA(message transfer agent): manage the transfer of mail messages over the Internet
email server: UA server + MTA + MS
1. UA client: user interface + facility to interact with UA server
email client: local MS + UA client
POP3(post office protocol 3): control the transfer of messages over the access network between a UA client and a UA server
SMTP(simple mail transfer protocol): application protocol used to control the transfer of messages between to MTAs over the Internet
email message: message(header, body) + envelopeapp
2. message header fields: some fields are used by UA/user, and some are used by the message transfer system
From: and Sender: may be different.
NVT ASCII(network virtual terminal ASCII): modified version of ASCII codeword set, used in transfer syntax for mail messageside
3. MIME(multipurpose Internet mail extension): an extension to RFC 822 standard, offering the ability to transfer multitypes of mail messages
MIME adds a number of extra header fields to the existing fields that collectively enable the user to define alternative media types in the message body.
MIME also provides a way of converting supported alternative media types into strings of ASCII characters so that they can be transfered using NVT ASCII.post
4. transfer encoding: To ensure the codewords in the content field will not misinterpreted by MTA as an SMTP protocol, the UA first converts non-ASCII data into lines this
of (7-bit) ASCII characters and then into lines of NVT ASCII. Collectively, this is referred to as transfer encoding.
base64: an alternative transfer encoding, used to send blocks of binary data or strings of characters from a character set that uses 8-bit codewords
64 = 2**6; 24 = 6*4 = 8*3
10010101 11011100 00111011 01011000 ->10010101 11011100 00111011 01011000 = = ( = is 00111101)
100101 011101 110000 111011 010110 000011 110100 111101
-> 25 1D 30 3B 16 03 34 3D -> ldw7WD09
-> ascii -> nvt ascii
quoted-printable: 11101001 -> =E9spa
5. processing flow
on the sender's side
-> user send an email
-> UA client format the message into NVT ASCII -> UA client sends the message to UA server in its local mail server
-> UA server deposits the message into the message queue
-> client MTA checks the message queue periodically -> detects a message
-> client MTA formats the message
-> client MTA sends the message
-> obtain IP address of the recipient server by its DNS name
-> establish a TCP connection via IP address and port 25 of the recipient server
-> use SMTP to transfer data
-> .....
-> receive a final 250 response -> informs the UA server about the successful transfer
-> the UA server informs the UA client
-> the UA client informs the usercode
on the receiver's side
-> the recipient's UA client queries its local UA server periodically to determine whether a new mail has arrived (active observer instead of lazy observer)
-> the recipient's UA server receives an enquery and transfers the received data to the UA client
-> the UA client places the message in the user's IN mailboxorm
6. SMTP
client <-> server
command <-> responseserver
=========================================================
Resources (Pictures)ip
==========================================================
Questionsci
==========================================================
Key Words
POP3
SMTP
========================================================== References RFC 1939 (POP3) RFC 821 (SMTP) RFC 822 (standard format for header fields) RFC 1341 (MIME) RFCs 2045/8 (MIME) RFC 1521 (transfer encoding) computer networking and the Internet by Fred Halsall