![](https://csdnimg.cn/release/download_crawler_static/87590497/bg7.jpg)
2.电子邮件相关协议
开发邮件客户端程序,就不得不用到 RFC822 邮件格式、SMTP 协议和 POP3
协议。RFC822 定义了用于电子邮件报文的格式,即 RFC822 定义了 POP3、SMTP
以及其他电子邮件传输协议所提交、传输的内容;POP3 是因特网上传输邮件的
第一个协议,也是一个离线协议;SMTP 是 Internet 上传输电子邮件的标准协议,
用于提交和传送电子邮件,规定了主机之间传输电子邮件的标准交换格式和邮件
在链路层上的传输机制。
2.1 RFC822 邮件格式
RFC822 中对电子邮件的格式加以定义,内容全部由 ASCII 字符组成,就是
通常所说的文本文件,因而标准将它称为 Internet 文本信件(Internet Text
Messages)。为了支持多媒体文 档的传输,1996 年又发表了一系列的关于
MIME(Multipurpose Internet mail Extensions)格式的定义。RFC822 定义的邮
件格式由两部分组成:邮件头(也称信封)和邮件内容。邮件头包括与传输、投
递邮件有关的信息;邮件内容包括标题和正文。
2.2 SMTP 协议
SMTP( Simple Mail Transfer Protocol)简单邮件传输协议,是目前使用最
广泛的发送电子邮件的协议。SMTP 通常用于把电子邮件从客户机传输到服务器,
以及从某一服务器传输到另一个服务器。
2.2.1 SMTP 协议简介
简单邮件传输协议(SMTP)的目标是可靠高效地传送邮件,它独立于传送子
系统而且仅要求一条可以保证传送数据单元顺序的通道。SMTP 的一个重要特点
是它能够在传送中接力传送邮件,传送服务提供了进程间通信环境(IPCE),该
环境可以包括一个网络,几个网络或一个网络的子网。传送系统(或 IPCE)不
是一对一的,进程可能直接和其它进程通过已知的 IPCE 通信。邮件是一个应用
程序或进程间通信,邮件可以通过连接在不同 IPCE 上的进程跨网络进行邮件传
送,更特别的是,邮件可以通过不同网络上的主机进行接力式传送。
SMTP 设计基于以下通信模型:针对用户的邮件请求,发送 SMTP 与接收 SMTP
之间建立一个双向传送通道。接收 SMTP 可以是最终接收者也可以是中间传送者。
SMTP 命令由发送 SMTP 发出,由接收 SMTP 接收,而应答则反方向传送。
一旦传送通道建立,SMTP 发送者发送 MAIL 命令指明邮件发送者。如果 SMTP
接收者可以接收邮件则返回 OK 应答。SMTP 发送者再发出 RCPT 命令确认邮件是
否接收到。如果 SMTP 接收者接收,则返回 OK 应答;如果不能接收到,则发出拒
绝接收应答(但不中止整个邮件操作),双方将如此重复多次。当接收者收到全