本可以是X.400倍更好的电子邮件
摘要
一篇回顾文章指出,基于OSI的X.400电子邮件标准提供了比SMTP更丰富的功能——加密、日程安排、已读回执、多语言文本——却因为SMTP更易于实现而败下阵来。
暂无内容
查看缓存全文
缓存时间: 2026/04/23 12:14
# 电子邮件本可以是 X.400 的十倍好
来源:https://buttondown.com/blog/x400-vs-smtp-email
如果历史稍有偏差,你刚刚发出的那封邮件,在写错内容时可以被撤回,或被新版本覆盖;可以设定一小时后送达;如果午夜前未被阅读,还能自动销毁。
你再也不用敲“正如我上封邮件所说”。相反,你可以把邮件串成私人维基。你可以给整个组织或部门发信,由邮件客户端在发出前确认可达。
而且,在互联网邮件支持这些功能之前整整八年,你就可以附加文件、用 128 个 ASCII 之外的字符写多语言信件;在“已读回执”被生硬地加到邮件之前十五年,你就能知道对方是否已读;加密也不会是事后补丁,而是一开始就内建。
这一切,甚至更多,都写在 1984 年的 X.400 规范里,叫做*人际报文通信*。它就是今天所谓“电子邮件”的超集。
“我们当年有个更好的系统:X.400,”一位评论者怀旧道(https://news.ycombinator.com/item?id=10405681)。他认为,最终胜出的 SMTP(*简单邮件传输协议*)“赢不是因为更好,只是因为它更容易实现——就像一辆没有刹车和安全带的车。”
“在 OSI 的所有产物中,X.400 算得上最成功的,”曾帮助桥接 X.400 与 SMTP 的开发者 Marshall T. Rose 也同意(http://opentranscripts.org/transcript/geek-of-the-week-marshall-t-rose/)。他指的是 X.400 那种类似“叹号路径”的地址,例如
`C=no; ADMD=; PRMD=uninett; O=uninett; S=alvestrand; G=harald`
而 SMTP 地址只是
`[email protected]`
“不过,”他补刀,“这有点像说二战是大萧条的成功收尾。”
## 来,咱们一起立个标准
**Exchange Server 中的 X.400**
Exchange Server 部分基于 X.400 构建,并在该标准过气后仍与其互联多年
尼尔·阿姆斯特朗登月前半年,美国国防部启动 ARPANET,把全国计算机连起来,经费从导弹防御项目里挪出。
就在这张网上,我们今天熟知的电子邮件诞生。Ray Tomlinson 把文件传输软件、ARPANET 和 `@` 符号拼在一起,1971 年,邮件问世。很快它占掉 ARPANET 四分之三流量(https://buttondown.com/blog/optimism-of-email)。John Naughton 在《未来简史》里吐槽:“政府花大钱建的严肃基础设施,被极客们拿来互相发消息。”
“电子邮件”——或至少这个概念——席卷全球。1978 年 CompuServe 向企业提供邮件,次年向消费者开放,用数字 ID 就能给网内任何人写信。你也可以订阅 The Source(1978)、MCI Mail(1983)或 AppleLink(1986,后来把第一封邮件送上太空,1991 年)。
电信和政府蜂拥而入。1982 年英国电信推出 Telecom Gold,美国邮政则砸 4000 万美元搞 E-COM(https://buttondown.com/blog/the-e-com-story),试图把邮件重新打印在纸上垄断市场。国会断言:“七成以上信函可以电子化。”——距离第一封邮件才 11 年。
然而这些邮件大多困在围墙花园里。只要对方用同一服务,你就能随便发。即便邮件的老家也一团糟。“到 1977 年,Arpanet 的主机间已有若干非正式文本消息标准,”1982 年的 RFC 822(https://datatracker.ietf.org/doc/html/rfc822)写道。得让电子消息说同一种话。
于是联合国登场。“各国建立的远程信息处理服务和基于计算机的存储转发消息服务,需要标准以促进国际间用户交换,”一份邮件标准化文件开篇写道,离秘书长隔着三层官僚。那一刻,邮件差点成了国际标准。
## 我是政府,我来帮你
**X.400 示意图**
来自 X.400 标准的一张“相对简单”的图
今天的联合国建议:邮件应简洁、单主题、无术语、礼貌、正式(https://www.un.org/ombudsman/resources/tips/email-exchanges)。而在 1984 年 10 月,它麾下的 ITU CCITT 和 UNESCO 关联的 IFIP 发布的 X.400 规范,既不简洁,也充斥术语。
“本建议书描述消息处理系统(MHS)的模型与服务要素,”X.400 规范(https://search.itu.int/history/HistoryDigitalCollectionDocLibrary/4.259.43.en.1042.pdf)开篇,“MHS 采用 OSI 参考模型的分层通信结构……”诸如此类,266 页。光“如何写地址”就用了 6 页,却一次没给出完整示例(或许也好,X.400 地址花样太多,RFC 1506(https://www.rfc-editor.org/rfc/rfc1506.html)总结出 6 种常见格式)。
它繁复、过度描述、欠具体,偏偏出现在邮件最需要简化的时刻。而且还迟到。
两年前,SMTP 仅用 68 页就讲完了。“SMTP 目标是可靠高效地传邮件,”南加州大学的 Jon Postel 在 RFC 821(https://www.rfc-editor.org/rfc/rfc821)写道。地址就是简单的 user@domain,语法把一封简单邮件如何工作说得明明白白。
很快,社区方案战胜了委员会方案。
## 规定 vs 描述
“X.400 建议书本身基本没法直接用,学会读它就够专家喝一壶,”Cemil Betanov 1993 年的《X.400 入门》(https://archive.org/details/introductiontox40000beta/page/n13/mode/2up)开篇写道,“X.400 被设想为工具,而非产品。”
X.400 规定“软件必须做什么、必须产生什么结果”;SMTP 则描述“事情如何一步步完成”。
发信在 X.400 里被描述为:
> 提交交互是始发 UA 把“内容+提交信封”交给 MTA 的手段,提交信封包含 MTS 提供所请求服务要素所需的信息。
SMTP 则直接给出命令与步骤:
> SMTP 邮件事务三步:MAIL 命令指名发件人;一个或多个 RCPT 命令给出收件人;DATA 命令给出邮件数据;最后以结束标记确认事务。
之所以文绉绉,是因为 X.400 被想象成意识形态框架,各电信和厂商可自行实现。地址丑陋?“它为了解决某些问题而故意丑陋,”Betanov 解释,“弄漂亮就丢功能。所以方案不是改地址,而是把地址藏起来。”——这后来互联网邮件和 X.400 软件都能用别名做到。
用户喜欢 X.400 的想法,也觊觎互操作和更丰富的功能。企业和政府看上它的安全:发件人认证、正文加密、密级标签。1989 年已有 22 家邮件厂商支持 X.400(https://librarytechnology.org/document/7382),包括 CC Mail、Lotus、DEC、AT&T。到 1994 年,X.400 互联了 100 万个邮箱(同年互联网用户约 2500 万)。
但人们也被它的难用和实现落差吓退。
X.400 是“自上而下”,MIME 作者 Nathaniel Borenstein 在电话里说,“电信公司先定需求,再让写规范的小组去满足。”理论上 AT&T 或英国电信确实能实现自己参与制定的标准,于是某家 X.400 系统真能提供“撤回邮件”——可一旦消息出墙,别家服务器偷偷备份,你根本没法证明邮件被撤回。
因此,无论 X.400 部署多广,其互操作使命注定失败。
研究发现,“多数邮件用户仍彼此隔离,X.400 未能兑现支持者承诺。”不同厂商的系统“早期就连不完全的初版也互不兼容”,Kai Jakobs 写道,“跨厂商交换消息几乎不可能。”
在圈内,复杂到自嘲。Tom Fitzgerald 戏言(https://groups.google.com/g/comp.protocols.iso.x400/c/K0SglKy4_ig):“X.400 如此安全,以至于不同厂商的 X.400 邮差彼此不说话。”《加拿大互联网手册》联合作者 Jim Carroll 吐槽:“我有好几个 X.400 账户,不同系统写法各异:
`c:us,a:mcimail;f:jim;s:carroll;`
或
`mhs\!c=us/ad=mcimail/pn=jim_carroll`
或
`[jim_carroll/jacarrollconsulting] mcimail/usa`
人们付钱让我教他们怎么写地址!这不对劲吧?”
电信把它标准化,政府从美國 GOSIP 到欧盟采购法規强制它,开发者要么骂它复杂要么吹它潜力。
与此同时,简单邮件协议野火般蔓延,到 1993 年连联合国自己也低头:互联网和 X.400 双轨发信。
“我曾在 Dialcom 商用 X.400,”前员工 Chris Marshall 回忆(https://news.ycombinator.com/item?id=26619522),“它确实有真·已读回执、路由管理,但复杂得要命,于是输给简单 SMTP 和 POP。”
“X.400 已死,”Carroll 总结,“因为它不如电话、传真和互联网邮件简单。”
## 死者未必真死
**Lunar AMHS 中的 X.400**
航空软件 Lunar AMHS 提交飞行计划时仍用 X.400 风格地址
今天你不会用 X.400 发邮件——除非你在航空业:AMHS 共享飞行计划仍基于 X.400(可给“塔台”而不是某人发优先报)。军方、政府、银行也零星使用;它曾支撑 SWIFT 转账标准。
若你用 Outlook 配 Exchange,也能看到 X.400(及目录标准 X.500,Borenstein 说“OSI 唯一真赢的部分”)的影子:Exchange 内置认证,比后来 SPF/DKIM/DMARC 早得多;投递报告也比 SMTP 详细。“MAPI 整个数据模型就是 X.400,”Hacker News 用户 @p_l 评论(https://news.ycombinator.com/item?id=42185256),“Outlook 与 Exchange 内部走 X.400-over-RPC,对外才做有损翻译。”
互联网邮件——我们今天直接叫“邮件”的 SMTP 栈——后来一路狂奔,功能逐渐追平 X.400。它跑得更快,远快于 X.400。
相似文章
OpenSMTPD 是未来的邮件服务器
Peter N. M. Hansteen 描述了他转向 OpenSMTPD 的过程,因为 OpenBSD 7.9 放弃了 exim,他认为 OpenSMTPD 是 21 世纪的邮件服务器。
我们曾经拥有的(互联网XMPP全盛时期)(2023)
一篇回顾性的博客文章,感叹XMPP(Jabber)从2008年左右的全盛时期(当时被广泛使用并得到Google和Facebook等主要平台的支持)走向衰落,并与Matrix等现代去中心化替代方案进行对比。作者反思了XMPP如何曾经通过Pidgin和Trillian等客户端为主流用户所用,但后来被专有的围墙花园式消息应用所取代。
电子邮件的未来
Fastmail探讨了AI驱动的邮件过滤和助手如何使邮件认证标准(SPF、DKIM、DMARC)成为防止伪造和网络钓鱼的关键基础设施。
mailX by mailwarm (YC S20)
mailX 是一款面向人类和AI代理的邮件送达率工具包,由 mailwarm(YC S20)推出。
停止构建自主电子邮件代理
作者基于实际失败案例,反对构建完全自主的电子邮件代理,主张采用受限的“提议-批准”工作流,即AI准备上下文和草稿,但由人类最终批准发送。