RFC821-简单邮件传输协议(SMTP)中文版
1
RFC821-简单邮件传输协议(SMTP)中文版
1. 介绍
简单邮件传输协议(SMTP)的目标是可靠高效地传送邮件,它独立于传送子系统而且仅要求一
条可以保证传送数据单元顺序的通道。附录 A,B,C 和 D 描述了不同传送服务下 SMTP 的使用。在
名词表中还定义了本文档中使用的术语。
SMTP 的一个重要特点是它能够在传送中接力传送邮件,传送服务提供了进程间通信环境
(IPCE),此环境可以包括一个网络,几个网络或一个网络的子网。理解到传送系统(或 IPCE)不
是一对一的是很重要的。进程可能直接和其它进程通过已知的 IPCE 通信。邮件是一个应用程序或进
程间通信。邮件可以通过连接在不同 IPCE 上的进程跨网络进行邮件传送。更特别的是,邮件可以通
过不同网络上的主机接力式传送。
2. SMTP 模型
SMTP 设计基于以下通信模型:针对用户的邮件请求,发送 SMTP 建立与接收 SMTP 之间建立
一个双向传送通道。接收 SMTP 可以是最终接收者也可以是中间传送者。SMTP 命令由发送 SMTP
发出,由接收 SMTP 接收,而应答则反方面传送。
一旦传送通道建立,SMTP 发送者发送 MAIL 命令指明邮件发送者。如 SMTP 接收者可以接收邮
件则返回 OK 应答。SMTP 发送者再发出 RCPT 命令确认邮件是否接收到。如果 SMTP 接收者接收,
则返回 OK 应答;如果不能接收到,则发出拒绝接收应答(但不中止整个邮件操作),双方将如此重
复多次。当接收者收到全部邮件后会接收到特别的序列,如果接收者成功处理了邮件,则返回 OK 应
答。
SMTP 提供传送邮件的机制,如果接收方与发送方连接在同一个传送服务下时,邮件可以直接由
发送方主机传送到接收方主机;或者,当两者不在同一个传送服务下时,通过中继 SMTP 服务器传送。
为了能够对 SMTP 服务器提供中继能力,它必须拥有最终目的主机地址和邮箱名称。
MAIL 命令参数是回复路径,它指定邮件从何处来;而 RCPT 命令的参数是转发路径的,它指定
邮件向何处去。向前路径是源路径,而回复路径是返回路径(它用于发生错误时返回邮件)。
当同一个消息要发往不同的接收者时,SMTP 遇到了向不同接收者发送同一份数据的复制品的问
题,邮件命令和应答有一个比较奇怪的语法,应答也有一个数字代码。在下面,例子中可以看到哪些
使用实际的命令和应答。完整的命令和应答在第四节。
命令与应答对大小写不敏感,也就是说,命令和应答可以是大写,小写或两者的混合,但这一点
对用户邮件名称却不一定是对的,因为有的主机对用户名大小写是敏感的。这样 SMTP 实现中就将用
户邮箱名称保留成初始时的样子,主机名称对大小写不敏感。
命令与应答由 ASCII 字母表组成,当传送服务提供 8 位字节传送通道,每 7 位字符正确传送,
而最高位被填充为 0。当指定一般的命令或应答格式后,参数会由一些类似于语言的字符串表示出来,
如"<string>"或"<reverse-path>",这里尖括号表示这是一种类似于语言的变量。
3. SMTP 过程
本节提供了 SMTP 中的一些过程。头一个说明的是基本发送过程(定义为发送操作)。下来描述
向前传送邮件,确认邮箱名称和扩展邮件列表,发送到终端和打开关闭交换。在本节的最后是对中断,
邮件域的说明。本节的例子只是一部分命令和应答的序列,完整的例子见附录 F。
3.1. MAIL