电子邮件(E-mail)是因特网上 最早流行的一种应用 \color{red}最早流行的一种应用 最早流行的一种应用,并且仍然是当今因特网上最重要、最实用的应用之一
传统的电话通信属于实时通信,存在以下两个缺点:
-
电话通信的主叫和被叫双方必须同时在场;
-
一些不是十分紧迫的电话也常常不必要地打断人们的工作或休息。
而电子邮件与邮政系统的寄信相似。
-
① 发件人将邮件发送到自己使用的邮件服务器;
-
② 发件人的邮件服务器将收到的邮件按其目的地址转发到收件人邮件服务器中的收件人邮箱;
-
③ 收件人在方便的时候访问收件人邮件服务器中自己的邮箱,获取收到的电子邮件。
电子邮件使用方便、传递迅速而且费用低廉。它不仅可以传送文字信息,而且还可附上声音和图像。
由于电子邮件的广泛使用,现在许多国家已经正式取消了电报业务。
- 在我国, 电信局的电报业务也因电子邮件的普及而濒临消失 \color{red}电信局的电报业务也因电子邮件的普及而濒临消失 电信局的电报业务也因电子邮件的普及而濒临消失
电子邮件系统采用 客户 / 服务器方式 \color{red}客户/服务器方式 客户/服务器方式。
电子邮件系统的三个主要组成构件:
- 用户代理 \color{red}用户代理 用户代理,
- 邮件服务器 \color{red}邮件服务器 邮件服务器,
- 以及 电子邮件所需的协议 \color{red}电子邮件所需的协议 电子邮件所需的协议。
1、用户代理(电子邮件客户端软件)&邮件服务器
如下所示,在发送方的计算机中,需要使用用户代理来发送邮件
- 在接受方的计算机中,同样也需要使用用户代理来接收邮件
用户代理
\color{blue}用户代理
用户代理是用户与电子邮件系统的接口
,
- 又称为 电子邮件客户端软件 \color{blue}电子邮件客户端软件 电子邮件客户端软件
邮件服务器
\color{blue}邮件服务器
邮件服务器是电子邮件系统的基础设施。因特网上所有的 ISP
都有邮件服务器
- 其功能是 发送和接收邮件 \color{blue}发送和接收邮件 发送和接收邮件
- 同时还要负责维护用户的邮箱
2、邮件发送协议&邮件接收协议
我们可以简单的认为邮件服务器中有很多邮箱、还有用来缓存待转发邮件的缓存
发送方使用用户代理通过邮件发送协议
(例如:SMTP
)将邮件发送给发送方邮件服务器
发送方邮件服务器同样通过邮件发送协议将该邮件发送给接收方邮件服务器
接收方在方便的时候使用用户代理通过邮件读取协议
(例如:POP3
)
- 从接收方邮件服务器读取邮件
也就是说
协议
\color{blue}协议
协议包括邮件发送协议
发送协议
\color{blue}发送协议
发送协议(例如:SMTP
)
- 和邮件
读取协议
\color{blue}读取协议
读取协议(例如:
POP3
,IMAP
)
3、邮件发送和接受过程
发送方的用户代理作为 SMTP
客户
- 与发送方邮件服务器中的
SMTP
服务器进行TCP
连接
然后基于这条连接使用 SMTP
协议来发送邮件给发送方邮件服务器
发送方邮件服务器中的 SMTP
客户
- 与接收方
SMTP
服务器进行TCP
连接
然后基于这条连接使用 SMTP
协议来发送收到的待转发邮件给接收邮件服务器
接收方的用户代理作为 POP3
客户
- 与接收方邮件服务器中的
POP3
服务器进行TCP
连接
然后基于这条连接使用 POP3
协议从接收方服务器读取邮件
4、简单邮件传送协议 SMTP(Simple Mail Transfer Protocol)的基本工作过程
如下所示
发送方邮件服务器周期性地扫描邮件缓存
-
若发现有待转发的邮件,则发送方邮件服务器中
SMTP
客户会与接收方邮件服务器中的SMTP
服务器进行TCP
连接端口号为 25 25 25
之后,SMTP
客户就可以基于 SMTP
连接给 SMTP
服务器发送 SMTP
命令
- 共 14 14 14 条
SMTP
服务器也会给 SMTP
客户发送相应的应答
- 共 21 21 21 种
SMTP
客户与服务器之间通过
命令与应答
\color{blue}命令与应答
命令与应答的交互方式
- 最终实现
SMTP
客户发送邮件给SMTP
服务器
4.1、命令与应答的过程
整体流程图
当 TCP
连接建立成功后,SMTP
服务器会主动推送
服务就绪应答
\color{red}服务就绪应答
服务就绪应答给 SMTP
客户
-
应答代码 220 220 220 后面可能跟有描述信息
例如:网易服务器给出的描述信息
SMTP
客户收到该应答后,向服务器说明身份,告知自己 SMTP
服务器的域名
-
具体命令为:HELO 其后为命令参数
例如:HELO hnust.edu.cn
SMTP
服务器若认为身份有效,则发回应答代码:
250
250
250
- 否则发回其他错误代码,例如: 421 421 421 表示服务不可用
SMTP
客户收到该应答后,使用命令 MAIL FROM 来告诉服务器邮件来自何方
- 例如:MAIL FROM:<jgao1 @hnust.edu.cn>
SMTP
服务器认为合理,则发回应答代码:
250
250
250
- 否则发回其他错误代码
SMTP
客户收到该应答后,使用命令 RCPT TO 来告诉服务器邮件去往何地,也就是收件人邮箱
- 例如:RCPT TO:<收件人地址>
SMTP
服务器种若有该收件人邮箱,则发回应答代码
250
250
250
- 否则发回其他错误代码
SMTP
客户收到该应答后,使用 DATA 命令来告诉服务器自己准备发送邮件内容了
SMTP
服务器若准备好接收,发回应答代码
454
454
454
- 否则发回其他错误代码
SMTP
客户收到该应答后就向 SMTP
服务器发送邮件内容
SMTP
客户发送完邮件内容后还要发送结束符
SMTP
服务器若收件成功,则发回应答代码
250
250
250
- 否则发回其他错误代码
SMTP
客户收到该应答后,使用命令 QUIT 向服务器请求断开连接
SMTP
服务器发回应答代码
221
221
221 表示接受请求并主动断开连接
5、电子邮件的信息格式
电子邮件的信息格式并不是由 SMTP
定义的,而是在 RFC 822
中单独定义的。这个 RFC
文档已在 2008 年更新为 RFC 5322
。
一个电子邮件有 信封 \color{red}信封 信封和 内容 \color{red}内容 内容两部分。
-
而内容又由 首部 \color{red}首部 首部和 主体 \color{red}主体 主体两部分构成。
首部和主体由用户填写
首部中包含有一些关键字,后面加上冒号
-
例如:
From: jgap1@hnust.edu.cn
To: 收件人的电子邮件地址(一/多)
Cc: 一个或多个收件人以外的抄送人的电子邮件地址
- 抄送人收到邮件后,可看可不看邮件,可回可不回邮件
Subject: 邮件的主题(反应了邮件的主要内容)
-
很显然,最重要的关键字为
To
和Subject
,往往是必填选项
用户写好首部后,邮件系统自动将信封所需的信息提取出来并写在信封上
- 所以用户不需要填写电子邮件信封上的信息
在填写完首部各关键字的内容后,用户还需要撰写邮件的主体部分
- 这才是用户想传递给收件人的核心信息
6、多用途因特网邮件扩展 MIME
SMTP 协议只能传送 ASCII 码文本数据 \color{red}\texttt{SMTP} 协议只能传送 \texttt{ASCII} 码文本数据 SMTP协议只能传送ASCII码文本数据,不能传送可执行文件或其他的二进制对象。
SMTP
不能满足传送多媒体邮件(例如带有图片、音频或视频数据)的需要。并且许多其他非英语国家的文字(例如中文、俄文、甚至带有重音符号的法文或德文)也无法用SMTP传送。
为解决 SMTP
传送非 ASCII
码文本的问题
- 提出了 多用途因特网邮件扩展 MIME \color{red}多用途因特网邮件扩展\texttt{MIME} 多用途因特网邮件扩展MIME(Multipurpose Internet Mail Extensions)
如下所示,发送方发送的电子邮件中包含有非 ASCII
码数据
- 则不能直接使用
SMTP
进行传送
需要通过 MIME
进行转换
- 将非
ASCII
码数据转换为ASCII
码数据
然后就可以使用 SMTP
进行传送了
接收方也要使用 MIME
对收到的 ASCII
码数据进行逆转换
- 这样就可以得到包含有非
ASCII
码数据的电子邮件
为了实现这种转换
增加了 5 个新的邮件首部字段 \color{red}5 个新的邮件首部字段 5个新的邮件首部字段,这些字段提供了有关邮件主体的信息。
定义了 许多邮件内容的格式 \color{red}许多邮件内容的格式 许多邮件内容的格式,对多媒体电子邮件的表示方法进行了标准化。
定义了 传送编码 \color{red}传送编码 传送编码,可对任何内容格式进行转换,而不会被邮件系统改变。
实际上,MIME
不仅仅用于 SMTP
,也用于后来的同样面向 ASCIl
字符的 HTTP
.
7、常见的邮件读取协议(POP&IMAP)
邮局协议
POP
\color{red}邮局协议\texttt{POP}
邮局协议POP (Post Office Protocol),POP3
是其第三个版本,是因特网正式标准。
-
非常简单、功能有限的邮件读取协议。用户只能以 下载并删除方式 \color{red}下载并删除方式 下载并删除方式或 下载并保留方式 \color{red}下载并保留方式 下载并保留方式从邮件服务器下载邮件到用户方计算机。
不允许用户在邮件服务器上管理自己的邮件 \color{red}不允许用户在邮件服务器上管理自己的邮件 不允许用户在邮件服务器上管理自己的邮件。
- (例如创建文件夹,对邮件进行分类管理等)。
因特网邮件访问协议
IMAP
\color{red}因特网邮件访问协议\texttt{IMAP}
因特网邮件访问协议IMAP (Internet Message Access Protocol),IMAP4
是其第四个版本,目前还只是因特网建议标准。
-
功能比
POP3
强大的邮件读取协议。用户在自己的计算机上就可以操控邮件服务器中的邮箱 \color{red}用户在自己的计算机上就可以操控邮件服务器中的邮箱 用户在自己的计算机上就可以操控邮件服务器中的邮箱,
就像在本地操控一样
-
因此
IMAP
是一个联机协议。
POP3
和 IMAP4
都采用
基于
TCP
连接的客户
/
服务器方式
\color{red}基于\texttt{TCP}连接的客户/服务器方式
基于TCP连接的客户/服务器方式。
POP3
使用熟知端口
110
110
110,IMAP4
使用熟知端口
143
143
143。
8、基于万维网 WWW 的电子邮件
通过 浏览器 \color{red}浏览器 浏览器登录(提供用户名和口令) 邮件服务器万维网网站 \color{red}邮件服务器万维网网站 邮件服务器万维网网站就可以撰写、收发、阅读和管理电子邮件。
- 这种工作模式与
IMAP
很类似,不同的是用户计算机无需安装专门的用户代理程序,只需要使用通用的万维网浏览器。
邮件服务器网站通常都提供非常强大和方便的邮件管理功能,用户可以在邮件服务器网站上管理和处理自己的邮件,而不需要将邮件下载到本地进行管理。
8.1、同一服务器
假设用户 A
和 B
都是用网易邮件服务器,如下所示,用户 A
的电子邮件地址与用户 B
的电子邮件地址
用户 A
给用户 B
发送邮件,用户 A
使用游览器登录服务器网站,撰写并发送邮件给用户 B
用户 B
使用游览器登录服务器网站,读取收到的邮件
用户 A
和 B
在发送和接收邮件时与服务器之间使用的是 HTTP
协议
- 而不需要使用之前介绍的
SMTP
和POP3
协议
8.2、不同服务器
假设二者使用不同的邮件服务器,如下所示
用户 A
给用户 B
发送邮件,用户 A
使用游览器登录自己的邮件服务器网站,撰写并发送邮件给用户 C
- 使用的是
HTTP
协议
用户 A
的邮件服务器使用 SMTP
将邮件发送给用户 C
的邮件服务器
用户 C
使用游览器登录服务器网站,读取收到的邮件
- 使用的也是
HTTP
协议
9、习题
答案 D
答案:A
答案:D