博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Electronic Mail (邮件服务架构)
阅读量:6412 次
发布时间:2019-06-23

本文共 3946 字,大约阅读时间需要 13 分钟。

hot3.png

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) + envelope

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 messages

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.

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

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 -> =E9

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 user

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 mailbox

6. SMTP

client <-> server
command <-> response

=========================================================
Resources (Pictures)

 

 

 

 

 

==========================================================
Questions

 

 

==========================================================

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

 

 

 

转载于:https://my.oschina.net/u/158589/blog/62363

你可能感兴趣的文章
链式二叉树
查看>>
mysql show processlist命令 详解
查看>>
ubuntu下架设svn服务器及在windows建立svn+ssh客户
查看>>
设计模式系列-外观模式
查看>>
C++编程->import函数
查看>>
DNS
查看>>
只读表空间的备份与恢复
查看>>
Zookeeper 集群
查看>>
设计模式-外观模式
查看>>
给年轻工程师的十大忠告(转载)
查看>>
Java访问USB设备
查看>>
服务端 REST与页面兼容的URL设计
查看>>
servlet中的客户端和服务端跳转
查看>>
六、Python自动化运维入门(面向对象编程)
查看>>
linux下svn命令大全
查看>>
java数据库MySql以及SQL语句
查看>>
dom4j.Document 遍历节点信息
查看>>
推荐漂亮的flash网页MP3音乐播放器
查看>>
Nginx的TCP负载均衡介绍
查看>>
企业IM-3 InIOCP组件介绍-Client管理
查看>>