6.4 E-mail

电子邮件E-mail #

异步通信方式算是一种思维革新吧

把东西放到信箱里,不需要同时在场

邮件系统结构 #

用户代理UA:用户和电子邮件系统的接口,一般就是电子邮件客户端软件

邮件服务器:它们之间发送和接收邮件,服务商提供

协议:用户代理和邮件服务器之间的协议

过程是这样的:服务器转发缓存队列里的邮件,用户在服务器上有个信箱

image-20230625214959591

协议包括发送和读取:

image-20230625215125208

STMP和POP3 #

STMP #

发送服务器与接收服务器的连接建立:发送服务器周期性扫描缓冲区,发现有邮件就去和接收服务器建立TCP连接(25)

它们之间是命令-应答的交互方式

image-20230625215826803

邮件传送:

  • 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: 可选,用户填写主题

邮件系统自动从首部中提取需要的信息写在信封上

image-20230625220109363

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

image-20230625220332677

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

image-20230625221054102