1 电子邮件概述
一个电子邮件系统由三部分组成:用户代理、邮件服务器以及邮件协议。
- 发送协议
- SMTP(简单邮件传送协议,Simple Mail Transfer Protocol)
- MIME(通用互联网邮件扩充,Multipurpose Internet Mail Extensions)
- 读取协议
- POP3(邮局协议,Post Office Protocol)
- IMAP(网际报文存取协议,Internet Message Access Protocol)
2 简单邮件传送协议 SMTP
SMTP 规定了在两个相互通信的 SMTP 进程之间应如何交换信息。
SMTP 只能发送 ASCII 码,而互联网邮件扩充 MIME 可以发送二进制文件。MIME 并没有改动或者取代 SMTP,而是增加邮件主体的结构,定义了非 ASCII 码的编码规则。
2.1 连接建立
- 发件人的邮件送到发送方邮件服务器的邮件缓存后,SMTP 客户就每隔一定时间(例如 30分钟)对邮件缓存扫描一次。
- 如发现有邮件,就使用 SMTP 的熟知端口号码 25 与接收方邮件服务器的 SMTP 服务器建立 TCP 连接。
- 在连接建立后,接收方 SMTP 服务器要发出“220 service ready"(服务就绪)。然后 SMTP 客户向 SMTP 服务器发送 HELO 命令,附上发送方的主机名。
- SMTP 服务器若有能力接收邮件,则回答:“250 OK”,表示己准备好接收。
- 若SMTP服务器不可用,则回答“ 421 Service not available ”(服务不可用)。
- 如在一定时间内(例如三天)发送不了邮件,邮件服务器会把这个情况通知发件人。
SMTP 不使用中间的邮件服务器。不管发送方和接收方的邮件服务器相隔有多远,TCP 连接总是在发送方和接收方这两个邮件服务器之间直接建立。
2.2 邮件传送
- 从 MAIL 命令开始。MAIL 命令后面有发件人的地址。
- 若 SMTP 服务器已准备好接收邮件,则回答“250 OK"。否则,返回一个代码,指出原因。
- 下面跟着一个或多个 RCPT 命令,取决于把同一个邮件发送给一个或多个收件人。
- RCPT 命令的作用就是:先弄清接收方系统是否已做好接收邮件的准备,然后才发送邮件。
- 再下面就是 DATA 命令,表示要开始传送邮件的内容了。
2.3 连接释放
邮件发送完毕后,SMTP 客户应发送 QUIT 命令。SMTP 服务器返回的信息是“221 (服务关闭)”,表示 SMTP 同意释放 TCP 连接。邮件传送的全部过程即结束。
2.4 ESMTP
SMTP 存在着一些缺点:
- 发送电子邮件不需要经过鉴别。
- SMTP 不是为传送二进制数据设计的。虽然后来有了 MIME 可以传送二进制数据,但在传送非 ASCII 码的长报文时,在网络上的传输效率是不高的。
- SMTP 传送的是明文,不利于保密。
为了解决上述问题,颁布了 ESMTP(扩充的 SMTP,Extended SMTP)。
新增加的功能有:
- 客户端的鉴别
- 服务器接受二进制报文
- 服务器接受分块传送的大报文
- 发送前先检查报文的大小
- 使用安全传输 TLS
- 使用国际化地址等
考虑到现在的许多 SMTP 邮件服务器可能还没有升级到 ESMTP,因此特规定使用 ESMTP 的客户端在准备传送报文时,不是发送 HELO 而是发送 EHLO 报文。
- 如果 EHLO 报文被对方服务器端拒绝,就表明对方仍然是一个标准的 SMTP 邮件服务器(不使用扩展的参数)。
- 如果 EHLO 报文被接受了,那么客户端就可以使用 ESMTP 扩展的参数传送报文了。
3 电子邮件的信息格式
一个电子邮件分为信封和内容两大部分。
RFC 5322 只规定了邮件内容中的首部(header)格式,而对邮件的主体(body)部分则让用户自由撰写。
邮件内容的首部:
- To:后面填入一个或多个收件人的电子邮件地址。
- Subject:邮件的主题
- Cc:Carbon copy,抄送
- Bcc:Blind carbon copy,暗送
- From 和 Date:表示发信人的电子邮件地址和发信日期。
- Reply-To:对方回信所用的地址。可以与发件人发信时所用的地址不同。
4 邮件读取协议 POP3 和 IMAP
- POP3
- 邮局协议 POP 是一个非常简单、但功能有限的邮件读取协议。
- POP3 服务器只有在用户输入鉴别信息(用户名和口令)后,才允许对邮箱进行读取。
- POP3 的特点是只要用户从服务器上读取了邮件,就把该邮件删除。但最新版本的 POP3 可以不删除邮件。
- IMAP
- 网际报文存取协议 IMAP 协议中客户端和服务器上的邮件保持同步,如果不手动删除邮件,那么服务器上的邮件也不会被删除。
- IMAP 允许收件人只读取邮件中的某一个部分。
- IMAP 的缺点是如果用户没有将邮件复制到自己的计算机上,则邮件一直存放在 IMAP 服务器上。要想查阅自己的邮件,必须先上网。
5 基于万维网的电子邮件
- 浏览器和互联网上的邮件服务器之间传送邮件时,使用 HTTP 协议。
- 在各邮件服务器之间传送邮件时,使用 SMTP 协议。
6 通用因特网邮件扩充 MIME
SMTP 有以下缺点:
- MTP 不能传送可执行文件或其他的二进制对象。
- SMTP 限于传送 7 位的 ASCII 码。
- SMTP 服务器会拒绝超过一定长度的邮件。
- 某些 SMTP 的实现并没有完全按照 SMTP 的互联网标准。
互联网邮件扩充 MIME 并没有改动 SMTP 或取代它。
MIME 的意图是继续使用原来的格式,但增加了邮件主体的结构,并定义了传送非 ASCII 码的编码规则。