
当你打开一个一次性收件箱,屏幕上立刻冒出一个像 [email protected] 这样的全新地址时,多少有点像变魔术。没有人注册过这个邮箱,一秒钟前它还根本不存在,可是发往它的验证邮件却能在片刻之后出现在你的浏览器里。
这里面没有任何魔法。整件事都建立在一项早已被透彻理解的邮件服务器配置之上,它叫做 catch-all 全收域名,再加上邮件在互联网上传递的标准流程。本文会把一封邮件的完整路径走一遍:从发件服务器查询该往哪里投递,一直到那段文字最终显示在你眼前。这里的每一步都是真实且符合标准的,所以读完之后,你应该能明白临时地址背后到底发生了什么——同样重要的是,明白它的局限在哪里。
在任何邮件被投递之前,发件服务器都要先回答一个问题:哪台机器负责接收这个域名的邮件?答案存放在 DNS 里,也就是互联网那套分布式查询系统,它由 RFC 1035 定义。
每个域名都会发布一类特殊的记录,叫做 MX 记录(Mail eXchanger,邮件交换记录)。它指向的不是某个邮箱或某个人,而是一个主机名,并且带有一个优先级数字,这样域名就能列出备用服务器。一条简化后的记录长这样:
example-domain.com. IN MX 10 mail.example-domain.com.
它的含义是:“要投递发往 example-domain.com 的邮件,请连接 mail.example-domain.com。如果列了好几台,优先尝试数字最小的那台。”发件服务器随后会把这个主机名解析成 IP 地址,并建立连接。
关键在于:MX 记录是按域名定义的,而不是按地址定义的。它对 local-part(也就是 @ 前面那一段)一无所知。正是这一点,让 catch-all 全收行为成为可能。你可以用我们的 MX 查询工具 亲自验证任意域名的 MX 记录——输入一个域名,就能看到它对外公布的邮件主机。
连接建立之后,两台服务器之间会用 SMTP 对话,也就是 RFC 5321 描述的简单邮件传输协议。SMTP 是一段简短的、基于文本的交流。精简之后大致是这样:
S: 220 mail.example-domain.com ready
C: EHLO sender.example.org
C: MAIL FROM:<[email protected]>
C: RCPT TO:<[email protected]>
S: 250 OK
C: DATA
C: ...邮件正文...
C: .
S: 250 Message accepted
其中最关键的一行是 RCPT TO。发件方就是在这里写明收件地址。在一台普通的邮件服务器上,接收端会拿这个邮箱去比对它已知的账户列表。如果 r7k2q 不是一个真实账户,服务器就会回一个拒绝码——通常是 550,意思是“此处没有这个用户”——邮件随之被退回。
而 catch-all 配置只改变了一件事:服务器不再把 local-part 拿去和列表比对,而是被设置为接受该域名下任意 local-part,并把它们统统路由到同一个地方。于是 r7k2q@、kitchen-table@、whatever-you-typed@ 都会得到 250 OK,哪怕它们从来没有被显式创建过。
这就是全部的秘密。所谓“catch-all”,不过是对这条规则的字面描述:把发往这个域名的一切都接住,无论 @ 前面是什么名字。
被接受的邮件总得落到某个地方。在 catch-all 配置下,它会落进一个共享的存储里——有时是一个真实的邮箱,有时是接收服务器写入的一个数据库。接收系统会记下每封邮件原本发往哪个地址(它手上还留着原始的 RCPT TO 值),这样之后才能只把属于你当前查看地址的邮件展示给你。
对于一个临时收件箱服务来说,这里的保留时间是有意做得很短的。邮件本就是为了读一次然后丢弃,而不是归档。这里没有长期的文件夹结构,没有跨越数月的搜索历史,也不指望一封邮件明天还在。这是优点,而不是缺陷:一个注重隐私的服务保留的数据越少,可能泄露的东西也就越少。我们的邮箱保留控制审计按实际代码列出了会话、可见性和清理边界。
最后一跳,才是你真正看见的那一步。和传统邮件客户端用 IMAP 或 POP3 拉取邮件不同,基于网页的临时收件箱通常通过它自己的应用把存储的邮件展示出来。你的浏览器向服务发问:“r7k2q@ 有邮件吗?”服务就把它为这个地址接到的东西返回回来。新邮件往往能在 SMTP 握手完成后的几秒内出现。
所以完整的旅程是:DNS 把一个 MX 主机名交给发件方,SMTP 把邮件送到那台主机,catch-all 规则不管你临时编了什么 local-part 都照单全收,邮件带着它的目标地址标记在共享存储里短暂停留,最后网页应用把它呈现给你。五个步骤,每一步都是再普通不过的邮件服务器机制。
catch-all 并不会关掉邮件系统的其余管道。SPF、DKIM 和 DMARC 仍然作用于到达该域名的邮件,一台运维良好的接收服务器依然会对它们进行评估。正因如此,来自可信发件方的验证邮件能干净利落地到达,而明显的伪造邮件则可能被标记或丢弃。
如果你想确认某封邮件是否货真价实,可以检查它的原始元数据。我们的教程如何阅读邮件头讲解了哪些字段能揭示真实的发送路径,而你可以用 SPF 检查工具 确认发件方公布的策略。顺带一提,这正是域名管理员调试自己邮件时用的工具——无论收件箱是永久的还是临时的,方法完全一样。
catch-all 临时地址是一件用途明确而狭窄的工具,假装它无所不能对谁都没有好处。
基于这些理由,临时收件箱适合用来削减订阅垃圾邮件、在正式投入之前试用一个应用,或者把一次低风险的注册挡在你的主邮箱之外。而它不适合用于银行、政务、医疗,或任何必须长期存续、需要可靠找回的账户。它同样不是用来规避身份核验或滥用免费试用的工具——那样使用会破坏那份让各种服务保持开放的信任。
catch-all 全收域名并不是什么稀奇的发明。它只是一条刻意放宽的收件规则,叠加在那套搬运全世界每一封邮件的、同样的 DNS 与 SMTP 标准之上。MX 记录说明往哪儿送,SMTP 负责搬运邮件,catch-all 规则接住你随手编的任何名字,短暂存储把它留住,网页应用把它展示给你。理解了这条链路,一个看似“变魔术”的一次性收件箱,就变成了你可以清醒地去推理、也能清醒地认清其边界的东西。