电子邮件E-mail #
异步通信方式算是一种思维革新吧
把东西放到信箱里,不需要同时在场
邮件系统结构 #
用户代理UA
:用户和电子邮件系统的接口,一般就是电子邮件客户端软件
邮件服务器:它们之间发送和接收邮件,服务商提供
协议:用户代理和邮件服务器之间的协议
过程是这样的:服务器转发缓存队列里的邮件,用户在服务器上有个信箱
协议包括发送和读取:
STMP和POP3 #
STMP #
发送服务器与接收服务器的连接建立:发送服务器周期性扫描缓冲区,发现有邮件就去和接收服务器建立TCP连接(25)
它们之间是命令-应答的交互方式
邮件传送:
- 先
MAIL FROM: <xxx>
命令,看是否有OK
返回,检查是否准备好接收 - 发送
RCPT TO: <xxx>
命令,看是否有OK
返回,检查地址是否正确 - 发送
DATA
命令,理论返回354 start mail input; end with <CR><LF>.<CR><LF>
- CR(Carriage Return)表示回车,CR(Carriage Return)表示回车,但这个跟操作系统有关,Windows下一行是CR+LF,而Linux只有LF,所以我们git有时候会有这个东西的替换
- 然后发送具体内容,回复OK
- 发出QUIT,回复xxx
POP3和IMAP #
邮局协议POP
:TCP 110,只能下载(可选是否删除),不能进行管理
因特网报文存取协议IMAP
:TCP 143,功能更强大,可以在主机上操作服务器上的邮箱
邮件格式和MIME #
邮件的格式是 信封+内容(包括首部和主体)
首部包括一些关键字:
- From: 源(UA帮填)
- To: 目标
- Subject: 可选,用户填写主题
邮件系统自动从首部中提取需要的信息写在信封上

SMP只能传送ASCII码文本数据,于是有多用途网际邮件扩充MIME
: 在SMTP基础上定义非ASCII码的编码规则,将非ASCII码数据转换

补充:现在的基于WWW的电子邮件,浏览器HTTP协议
