Dzming.Li

应用层

6.4 电子邮件

6.4.1 电子邮件系统的组成结构

电子邮件的核心是电子邮件服务器。我们每个人电脑上都有电子邮件客户端,它们也被称作为用户代理,User Agent,但是我们的电脑不是一直都上线的。因此我们需要一台邮件服务器时刻保证它能够接受互联网上发过来的邮件,邮件服务器为很多个用户提供服务,每个用户都有自己的邮箱。

电子邮件由

  • User agent 用户代理

  • 邮件服务器

  • 简单邮件传输协议,Simple Mail Transfer Protocol, SMTP:

  • 邮件读取协议

    典型的邮件读取协议有POP,IMAP,JMAP等

6.4.2 电子邮件格式与MIME

值得注意的是,一封电子邮件同时发给多个人,那么每个收件人都会在头里面看到其他的手机人。

Subject: 标题

Reply-to 有时发信用的地址和回信用的地址不同。就需要

Cc:在工作中我们需要这种情况。老板布置给你一个任务。你需要和同事沟通。然后希望让老板能看到你们之间的沟通的结果。这样老板可以方便的查阅并且插进来。但是你需要知道这条消息具体是发给同事的,老板不是主要要采取行动的收件人。

Bcc:假设你要向别人群发邮件,但是又不希望让它们知道彼此的地址,就应该使用这一功能。

SMTP只能传输7位ACSII码内容。因此加入想要传图片啥的,就只能先封装成7位ASCII码再解码,这就是常说的MIME标准。通常来说我们喜欢用base64来编码图片啊啥的。我们所谓的附件,本质就是从邮件中读取出的MIME头。

6.4.3 SMTP协议与POP3协议

6.4.3.1 SMTP及其特点

6.4.3.2 SMTP邮件发送过程

  1. 连接建立阶段

我们的客户端会每过一段时间到SMTP服务器上去拉拉看如果有什么新邮件,有的话就说明需要拉取。我们会通过端口 25 和服务器建立 TCP 链接。

接着我们会向服务器发送一系列 RCPT 指令。

SMTP 协议的缺点就是它仅能 发送 ASCII 格式的邮件。

6.4.3.3 POP3邮件接受过程