摘要

  • D. Smallberg 在 1983 年 5 月至 8 月测试了 483 台主机,并在 RFC 876 报告结果。NIC 表中有 283 台声称支持 SMTP,其中 49 台从 ARPANET 与 ISI-Net 两个测试点都无法建立连接。另有 51 台没有这项声明,却至少从一处连通。
  • ARPANET 测试机能连接 285 台主机;其中 69 台对 VRFY postmaster 肯定作答,162 台立即拒绝虚构收件人,115 台在 RCPT TO 阶段肯定答复那个虚构名字。连上、识别名字、接受收件人命令,是三种不同的观察。

主机表里写着“SMTP”,仿佛这台机器已经开门等着收信。D. Smallberg 在 1983 年真的去敲了门。有些挂牌的机器从两处都叫不开,另一些没挂牌的机器却接通了。RFC 876 把汇总和逐台结果都留了下来。目录负责报出服务,插口负责作证;两者吵起来时,送信人总得先听见拨号结果。

测试从 5 月持续到 8 月。ISI-VAXA 位于 ARPANET,ISI-MOE 位于 ISI-Net;候选名单来自 8 月 17 日的 NIC 主机表,TAC 与回声主机不在样本内。483 台中,283 台在表里宣称支持 SMTP。49 台宣称者从这两台测试机都无法连通,约占 17%。同时有 51 台没有宣称者至少从一处连上。表中的能力声明与某时某地打开连接的实测,本来就要分开记账。

两处测试点看见的网络也不同。ISI-VAXA 接通 285 台;ISI-MOE 接通 170 台,而且这 170 台全部包含在前者的名单内。于是有 115 台只从 ARPANET 的测试机接通,占那 285 台的 40%。一台主机在一个网络上有门,在另一个网络上可能只有墙。这不是全网任何位置都相同的属性,而是两个发起点在这段时间里看到的路径。

接通还不是邮件对话的终点。Smallberg 发送 VRFY postmaster,285 台可连接主机中有 69 台肯定作答。SMTP 原始规范 RFC 821 把 VRFY 设为可选命令。随后测试者又用 RCPT TO 指向 postmaster 和一个编造的用户 jqkxwzvb。验证一个名字、接纳收件人、完成整封邮件的交付,各有自己的时刻。服务器可以在每一步说不同的话。

假用户的结果尤其像一次当场点名。285 台里,162 台立即回答用户不存在;115 台对这个假收件人的 RCPT TO 给出肯定答复;另外八台在这一轮始终未上线。那 162 台能立即拒绝假用户的主机中,121 台接受 postmaster 作为收件人。Smallberg 算出两个比例:在 162 台中是 75%,在全部 285 台可连接主机中是 42%。不带分母抄数字,很容易把一个命令阶段的表现写成整台邮件系统的能力。

开门后的礼仪也出了问题。约 40 台主机至少出现三类较严重异常之一。有些给 RSET 或 NOOP 回复 200,而 RFC 821 在这里规定的是 250。有些在 MAIL 之前收到 VRFY,竟回答 554 Nested MAIL,尽管规范允许会话中任何位置使用 VRFY。还有些在邮件正文尚未收集、事务已被 RSET 取消后,向发件人发出无法投递通知。Smallberg 说明规范没有明文禁止最后这种行为;它依然让“重置事务”听起来像一场迟到的道歉。

调查期间,异常被报告,许多也很快得到修复。RFC 对结果的定位就是一张快照,而逐台附录把观察固定在当年的主机表和测试时刻。它最有价值的部分是一套拆开的问法:表里怎么写,从哪里能连,命令如何回答,下一阶段如何处理。1983 年的互联网已有足够多的机器,让一行“支持 SMTP”变得过于自信。