RFC821 简单邮件传输协议(SMTP)
单邮件传输协议(录1. 介绍22. 3. 转发 发送信件(获得信件(转发 改变角色 94. 命令和应答序列 详细内容 透明性 大小19附录 A 9附录 B 0附录 C 应答码构成方法 20附录 F 一些例子 22参考资料361. 介绍简单邮件传输协议(目标是可靠高效地传送邮件,它独立于传送子系统而且仅要求一条可以保证传送数据单元顺序的通道。附录A,B,名词表中还 了 中使用的 语。要 是它 在传送中 传送邮件,传送服务 了 程 通信 ( 可以 一 , 一 的子 。 传送系统( 是一 一的是 要的。程可 和¡它 程通过¢£的件是一 应用程序 程 通信。邮件可以通过 在不同 程 §邮件传送。的是,邮件可以通过不同 ¥的“« 式传送。2. 用的邮件求,发送· 立一 传送通道。 ”»可以是中 传送”。送 ,而应答 ¿方 传送。一传送通道立,送邮件发送”。”可以 邮件 ¯发 。” , ¯不, 发¸ 应答( 不中 邮件),方 。 ” 邮件 的序列, ”成 了邮件, ¯传送邮件的« , 方·发送方 在同一 传送服务下 ,邮件可以 发送方“«传送 方“« ”, ”不在同一 传送服务下 ,通过中 送。Æ了 中 ,它 ª 最目的“«地 和邮 名。Ø,它´ 邮件º 而´ 邮件 。 Ø是 Ø,而 Ø是¯Ø(它用于发æ ¯邮件)。同一 要发 不同的 ” ,了不同 ”发送同一数据的 ø的ß,邮件命令和应答 一 的语法,应答» 一 数字代码。在下 ,例子中可以看 哪些使用实际的命令和应答。完的命令和应答在第四节。命令·应答 大小写不敏感,»就是说,命令和应答可以是大写,小写 ”的混合, 这一 用邮件名却不一 是 的,因Æ 的“« 用名大小写是敏感的。这样邮 名保留成初始 的样子,“«名 大小写不敏感。命令·应答传送服务 8位字节传送通道,每7位字符正确传送,而最高位被填充Æ0。 ´ 一般的命令 应答格式 ,参数 一些类似于语言的字符串表示 ,"" "",这里尖 号表示这是一种类似于语言的变量。3. 了一 说明的是送过程( Æ发送)。下 描述 传送邮件,确认邮 名和扩展邮件列表,发送 端和打开关闭交换。在 节的最 是 中断,邮件域的说明。节的例子只是一 分命令和应答的序列,完的例子见附录F。 三步,送”标识。一系列 给了 ”信,然 是送的邮件内容,最 邮件内容´示符确认。过程中的第一步是 邮 。命令告诉 ”新的发送¢经开始, 位所 状态表和缓冲区。它给¿Ø以 § 信¯。求被 , 方¯一 250 不 了邮 ,它 了“«和 邮 的¿Ø,¡中的第一 “«就是发送 命令的“«。过程中的第二步是发送命令给 Ø标识 ”,命令被 , 方¯一 250 存储 Ø。 ”未£, 方 ¯一 550 过程可 若干 。不仅 邮件,它是“«和目的邮 的Ø表,在¡中的第一 “«就是 命令的“«。 过程中的第三步是发送命令被 , 方¯一 354 认 以下的各§都是信件内容。 信件结尾 并存储 , ”发送一 250 Æ邮件是在传送通道¥发送,因 ª´明邮件内容结尾,以便应答 话可以 新开始。§仅发送一 句号 表示邮件内容的结束,在 方,一 用透明的过程 符号过滤掉,以不影响正常的数据。注意下 示件内容´示符确认邮件并告£ ”可以存储和发送数据了。 命令被 , 方¯一250 完成 无效的情况下失败。¥ 所述的过程是一 发送。这些命令只 以¥ 的顺序使用。下例表示了在一 发送中这些命令的使用。的里假 “««相。S: : 250 S: O:R: 250 O:R: 550 No O:R: 250 354 S: .250 人 ,而第三 人在 “«¥没 邮 。转发 下 是一些中目的地 不正确的, ”£道正确的目的地 的例子。在这些例子中,下列应答¶一应该允许发送方·获得正确地 。251在 地 发送 。这 应答意味着, 方用的邮 在另外的“«¥,而且意味着 在未 使用正确的转Ø。注意,“« ”用, ”它们 ”是不同的。 方负责传送 。551 地,尝试这 应答意味着 用的邮 在另外的“«¥,并意味着使用了正确的转发Ø。注意注意,“« ”用, ”它们 ”是不同的。 方¸ 用的信件,发送” ª根据 的信 新发送 ”原发送”¯ 信。 下例显示了这些响应的应用。转发的例子S: O:R: 251 S: O:R: 551 确认和扩展了另外的确认用名和扩展邮件列表的 。这些 们都以字符串Æ参数。 于符串参数´的是用名, 命令的响应要 用的命名和用的邮 。于符串参数´的是邮件列表, 命令的响应 于一 ,它们要 所 列表中用的命名和他们的邮 。“用名”是一 余的项目,它是故意被加¥的。“«采用 地邮ª 用名使它被“«确认。“«选择另外的字符串Æ用名,»是允许的。在一些“«中,邮 列表和一 邮 的代名 一 不清楚,因Æ一般的数据结构可 种类型的入口。要发 邮件列表的确认,应该给确 响应。在 这 ,“« 把邮件传送 列表¥所 的地 ¥ ,没 确 响应,就 告 。例,"550 is a a 求用于扩展一 用名,可 通过¯ 一 名字的列表 成确 响应,没 确 响应,就 告 。(例, "550 is a a 。在 响应的情况下(通常是 于每 应答´ 一 邮 。在模 求的情况下,例"这里 是"553 确认用名的情况下例所示S: : 250 S: 251 S: 550 S: 551 S: 553 表要求 响应的情况下例所示250: 250: 250. : 250: 250250 ”S: 550 实现的不同而不 加以 了。在一些系统¥,一 邮件列表的 件名, 是在许 不同的 件结构。, 它们实现 ,它们»不要求被在传送 实现。发送信件(获得信件(目的是 邮件发送 用的邮 中。一些“« 的类似的 是把邮件送 用的端(用正打开端)。 邮件送 用的邮 中Æ发送信件(而送 用端 ¶Æ获得信件(因Æ在一些“«¥,这 ”的实现 分类似,所以它们同 被 入了而,获得信件命令在。用应该 端¥写信的 。大 分“«允许用 ”¸类似的信。下 三 命令被 获得信件。它们被用于邮件命令而不是示 意 传送 用端。用未打开端( ”未 端信),450响应¯一 信被成 发送, 成 。件内容 发送 用的端¥(用在端¥)。用不在端¥,邮件内容 入邮 。邮件被发送 用端 ”用信 ,发送成 。发送 用端¥(用在端¥)。不 样,信件都 入信 。信件 入信 ,发送成