发布于 更新于
Catch-all 邮箱是什么?含义、原理和风险
Catch-all 邮箱(catch-all email address)是这样一个邮箱:发往某个域名下任何地址的邮件都会进入它,包括从来没人设置过的地址,只要这个地址没有自己的邮箱或别名。如果 example.com 设置了 catch-all,那么发往 shop@example.com、r8kq2@example.com 或 jnae@example.com(jane@example.com 的笔误)的邮件都会被接收,并投递到这一个邮箱,而不会退回给发件人。CatchNone 可以在 iPhone、iPad 和 Mac 上读取这个邮箱,并显示每封邮件送达的是哪个地址,包括你从未设置过的地址。
它还有别的叫法,也常被写成一个词:catchall。Fastmail 称之为 catch-all 或通配别名(wildcard alias),cPanel 称之为 Default Address(默认地址);iCloud+ 在 iPhone 上叫“允许接收所有电子邮件”(在 iCloud.com 上是“允许所有”),Apple 把这样的地址称为“接收全部”地址。Google Workspace 称之为“无限别名地址”,Cloudflare Email Routing(邮件路由)则有一条 Catch-all(全部接收)规则。验证工具把表现如此的域名称为“accept-all”(全部接受)。想开启 catch-all,请参阅如何在任意邮件服务商设置 catch-all 邮箱。
你说的是哪一种 catch-all?
这个词会出现在两种场合,需要的答案也不一样。
- 你有自己的域名,或者正打算注册一个。catch-all 是你的邮件服务商提供的一项设置。人们开启它,是为了不丢失写错地址的邮件,或者为了每次注册都能随手编一个新地址。本文大部分内容是写给你的。
- 某个邮件列表清洗工具把一个地址标记成了“catch-all”或“accept-all”。这是对收件人域名的判断,而不是对这个地址本身的判断。请直接跳到验证工具为什么标记 catch-all 域名。
Catch-all 邮箱的工作原理
光有域名,并不会让你自动拥有一个邮箱。域名的 MX 记录必须指向某个邮件服务商或转发服务,发件服务器会查询这条记录,找到该往哪里投递。SMTP 标准 RFC 5321 规定,域名有 MX 记录时,发件方必须使用这些记录。
接着,发件服务器会逐一报出每个收件人。普通服务器对存在的邮箱回答 250 OK,对不存在的邮箱回答 550(“没有这个用户”),发件人随后会收到退信。catch-all 则对 @ 前面的任何名字都回答“有”:
发件方服务器
1. 查询 example.com 的 MX 记录(DNS)
2. 连接到该服务器(SMTP)
3. RCPT TO:<r8kq2@example.com>
普通服务器:地址存在回 250,不存在回 550
catch-all:任何地址都回 250
4. 发送邮件
你的邮件服务商
5. 没有 r8kq2 这个邮箱,于是 catch-all
规则把邮件投递到你的邮箱
你已经设置的地址仍然优先:例如 Fastmail 会把发往某个具体别名的邮件投递给这个别名,而不是交给 catch-all。另外,catch-all 只管 @ 前面的部分。如果是域名写错了,比如你想写 example.com,却写成了 jane@example.net,邮件会发到另一个域名,或者根本无处投递,你的 catch-all 怎么也接不到。
Catch-all 与通配邮箱地址、别名和加号地址的区别
“通配邮箱地址”(wildcard email address)通常和 catch-all 是一回事。Fastmail 的帮助文档称之为“catch-all alias (also known as a wildcard alias)”(catch-all 别名,也叫通配别名),创建方式是 *@example.com。“通配”(wildcard)还有另外两种用法,指的是别的东西:
- DNS 通配记录(RFC 4592),例如一条
*.example.com记录,会为自身没有记录的子域名作答,比如anything.example.com。它和 @ 前面的部分毫无关系,catch-all 也不需要它。 - 邮件规则或过滤器里的通配模式只会对已经收到的邮件进行分类。Gmail 账户里的过滤器无法让一个域名接收其邮件服务器本会拒收的地址。
| 术语 | 示例 | 覆盖范围 | 需要先逐个设置地址吗? | 停用单个地址 |
|---|---|---|---|---|
| Catch-all(通配别名) | anything@example.com |
域名下所有没有自己邮箱的地址 | 不需要 | 为该地址单独设一条规则 |
| 别名 | shop@example.com |
一个地址,投递到你已有的邮箱 | 需要 | 停用或删除它(开启 catch-all 时,已删除别名的邮件通常会进入 catch-all) |
| 加号地址 | jane+shop@example.com |
在已存在的地址后加上的任意标签 | 不需要,但基础地址必须存在 | 只能靠过滤器,而且任何人都能去掉标签 |
转发是一种投递方式,而不是一种地址。catch-all 可以把邮件投递到同一服务商的邮箱里(iCloud+ 和 Fastmail 就是这样),也可以把所有邮件转发到别处的收件箱(Cloudflare Email Routing 就是这样)。
隐私用法:每次注册都随手编一个地址
很多人开启 catch-all 正是为了这个。你不用事先设置任何东西。在网店结账时,你输入 bookshop@example.com,或者一个随机地址,比如 r8kq2@example.com,这家店的邮件就会进入你的邮箱。如果这个地址后来收到垃圾邮件,或者收到某家你从未给过这个地址的公司发来的邮件,你就知道它来自哪一次注册。
两个习惯能让它更好用:
- 用随机地址,而不是网站名。知道你域名的人都能猜到
amazon@example.com,所以这个地址收到垃圾邮件,并不太能说明是谁泄露的。Bitwarden 的用户名生成器有一个“Catch-all email”(catch-all 邮箱)类型,可以在你的域名下生成一个随机地址。更多方法见如何生成真正能用的随机邮箱地址。 - 做好记录,记下你把哪个地址给了哪个网站,比如记在密码管理器里该网站的条目中。
每个网站一个地址,也会让数据泄露查询更能说明问题。在你证明自己控制某个域名之后,Have I Been Pwned 允许你查询整个域名;截至 2026 年 9 月,泄露地址不超过 10 个的域名可以免费查询。再对照你的记录,就能知道每个泄露的地址当初给了哪个网站。
如果你没有自己的域名,CatchNone 的 @catchnone.com 地址(Premium)无需设置域名、DNS 或邮箱。服务会在共享域名上随机分配每个地址,所以不会有属于你的名字把它们联系在一起。也有些服务会给你一个子域名,用法和 catch-all 相同。33mail 的网站至今仍在介绍如何当场编出 bbqtrading@you.33mail.com 这样的地址;SimpleLogin(需付费的 Premium 方案)和 addy.io 也提供带 catch-all 的子域名。和你自己的域名一样,子域名也会把你的各个地址联系在一起。
Catch-all 的缺点
被猜中的地址和更多垃圾邮件
在普通域名上,发往不存在地址的邮件会被退回。而在开启了 catch-all 的域名上,每一次猜测都会送达。addy.io 的常见问题说,垃圾邮件发送者和机器人“经常尝试随机邮箱地址”,比如 contact@ 或 admin@。cPanel 提醒,如果垃圾邮件发送者盯上你的域名,设置了转发的默认地址“可能会收到大量垃圾邮件”。各家服务商都只描述了这种风险,没有给出具体数字。猜测只是其中一条途径,其他途径见垃圾邮件发送者如何获取邮箱地址。
拼错的地址不再退信
没有 catch-all 时,把你的地址打错的人会收到退信,可以再试一次;Apple 和 Proton 都说明了关闭 catch-all 时会出现这种退信。开启 catch-all 后,jnae@example.com 会照常送达,发件人永远不会知道自己写错了。
在只有你一个人用的域名上,这往往正合你意。但有两种情况会带来麻烦。cPanel 指出,在多人共用的域名上,catch-all 可能会收到本该发给现有地址、却被拼错的邮件,于是邮件可能落到不该看的人手里。此外,发件人会一直用那个错误的地址,所以如果你以后屏蔽了这个地址或关闭了 catch-all,对方的邮件就会在毫无提示的情况下再也到不了你这里。
你的域名会把你的地址关联起来
Privacy Guides 提醒:“如果只有你一个人在使用你的自定义域名,别人只要看邮箱地址里的域名、忽略 @ 符号前面的所有内容,就能轻易地跨网站追踪你的行为。”比起许多人共用的域名,你自己的域名确实让你更容易在不同网站之间被关联起来;如果域名就是你的名字,它会直接暴露你的身份。catch-all 仍能告诉你是谁泄露了地址,但无法阻止别人看出这些地址属于同一个人。
地址能用多久,取决于域名
你编出的每个地址都依赖于你的域名注册。一旦域名到期未续,下一个注册这个域名的人就能收到发往所有这些地址的邮件,包括重置密码的链接。请开启自动续费,并保护好你的域名注册商账户。
开启 catch-all 的域名能停用单个地址吗?
在大多数服务商那里可以,但不是通过 catch-all 设置本身:你需要为每个想停用的地址单独添加一条规则或一个别名,而发件人会不会收到退信,取决于服务商。Fastmail 的 Disable(停用)选项和 Google Workspace 的 Reject message(拒收邮件)设置会退回邮件,cPanel 的转发器可以返回错误并拒收,Cloudflare Email Routing 的 Drop(丢弃)操作会悄悄删除邮件;而根据 Apple 的说明,iCloud+ 会退回发往你创建后又删除的地址的邮件(iCloud+ 每个域名允许 3 个启用中的地址,所以你可能需要先腾出一个位置)。
泄露的地址只有几个时,这样没问题;如果有几十个,就成了一份需要维护的清单,而且 Cloudflare 每个域名最多只能有 200 条路由规则(以上两项限制均截至 2026 年 9 月)。无论使用哪家服务商,设置之后都要用另一个账户发一封测试邮件。各家服务商的具体步骤见如何在 catch-all 上停用单个地址;iCloud 用户请参阅 iCloud+“自定义电子邮件域”指南。
addy.io 和 SimpleLogin 等别名服务的付费方案(截至 2026 年 9 月)可以在你自己的域名上运行 catch-all:每个别名在第一次收到邮件时自动创建,之后你可以单独关闭其中任何一个。
用 catch-all 还是别名服务?
Privacy Guides 更推荐专门的别名服务,因为别名可以逐个开启和关闭,回复也会从别名发出。如上所述,大多数服务商也能屏蔽单个地址,只是每个地址要设一条规则。能否发信取决于服务商:Fastmail 允许你在开启 catch-all 的域名上填写任意发件人(From)地址,而 Cloudflare Email Routing 不支持从你的域名发信或回复。不过,关于地址可被关联的那一点依然成立。
如果你希望地址比任何一家服务都长久,适合在自己的域名上使用 catch-all;如果你希望各处的注册无法通过域名对应起来,适合使用共享的别名域名。CatchNone 两种都支持:在你自己的域名上,它直接读取你的 catch-all 邮箱;有了 Premium,它的 @catchnone.com 地址位于共享域名上,停用其中一个,发件人就会收到退信。无论哪种方式,每封邮件都会标出它送达的地址。它在设计上只负责收信,所以这些邮件留在它自己的 App 里,你用平常的账户回复。费用和完整对比见自有邮箱域名值得吗。
写给邮件列表所有者:验证工具为什么标记 catch-all 域名
验证工具检查地址的方式,是通过 SMTP 与收件人的邮件服务器对话,并在真正发送任何邮件之前停下。如果服务器对每个地址都回答 250,这项检查就证明不了什么,因为真实地址和编造的地址看起来一模一样。服务器一旦接收了邮件,之后的投递失败会以单独的退信返回,或者邮件会被悄悄丢弃:Kickbox 说,这类服务器“可能会悄悄丢弃邮件,或在事后发送退信”。
各工具对这种结果的标注:
- Kickbox:“Accept-All”(全部接受),归为 Risky(有风险),并建议“Use caution when sending to risky addresses”(向有风险的地址发信时要谨慎)。
- NeverBounce:“Accept all (Unverifiable)”(全部接受,无法验证),并补充说 catch-all“是收件人邮件服务器上的一项设置,而不是对单个地址的判定——这些邮箱地址往往是有效的”。
- Hunter:状态为
accept_all,并给出一个分数,估计该地址有效的可能性。
这种情况很常见。ZeroBounce 的报告称,它在 2025 年处理的地址中,超过 9% 的结果是 catch-all;MailerCheck 给出的数字是,其验证过的地址中有 8.6% 属于这种情况。ZeroBounce 还说,即使并不存在 catch-all 邮箱,Microsoft 365 的入站路由也可能让探测结果看起来像 catch-all;而 Microsoft 的文档说明,它的 Authoritative domain(权威域)会拒收未知收件人。
该不该给 catch-all 地址发邮件?
catch-all 的结果意味着“未知”,而不是“无效”。通过确认注册得来的、或者点击过你邮件中链接的 catch-all 地址可以保留;其余地址分小批发送,退信的一律删除。
按地址整理 catch-all 邮件
按每封邮件的收件地址来整理即可;但通过密送(Bcc)发给你的邮件,不会在收件人(To)或抄送(Cc)中显示你的地址(RFC 5322),而邮件列表的邮件通常写的是列表地址。如果你的服务商会添加 Delivered-To 邮件头(见实验性标准 RFC 9228),它会有所帮助。各服务商的规则和搜索方法见按地址逐个阅读 catch-all 邮件。
CatchNone 的定位
CatchNone 的“使用你自己的域名”方式正是为读取 catch-all(通配地址)邮箱而设计的。它从你的设备直接连接到 catch-all 投递的那个邮箱,通过 IMAP(TLS,默认端口 993)或 JMAP 以只读方式读取,所以这些邮件从不经过 CatchNone 的服务器,它也从不更改你的 DNS。每封邮件都会标出它送达的地址,哪个地址被泄露或被卖掉,一看便知;“活动”还会指出发往未使用别名的邮件和首次来信的发件人。发往你从未创建过的地址的邮件,会显示在该地址下,并带有灰色标记;之后如果你通过“自定”用这个地址创建别名,它之前的邮件也会换上该别名的名称和颜色。“免费方案”的 10 个上限只计算你创建的别名,不计算收到邮件的地址;Lite 和 Premium 在你的域名上创建别名没有数量限制。下载 CatchNone,适用于 iPhone、iPad 和 Mac。
CatchNone 只负责收信,所以 catch-all 邮件留在它自己的 App 里,你用平常的账户回复。每次检查会读取收件箱中最近 30 天内最新的 100 封邮件,所以如果你的 catch-all 招来大量垃圾邮件,给它单独准备一个邮箱,别名邮件就不会被挤出去。CatchNone 不会过滤垃圾邮件,也不会屏蔽你域名上的地址;这要靠你的服务商的规则。如果你没有域名,CatchNone 在 Premium 中提供随机的 @catchnone.com 地址,无需设置域名、DNS 或邮箱:停用其中一个后,发件人会收到退信;每封邮件在送达后保留 30 天。
常见问题
Catch-all 邮箱安全吗?
catch-all 不会让任何一封邮件变得更危险;钓鱼邮件无论发到哪个地址都一样。它增加的是暴露面:被猜中的地址会收到邮件,拼错的邮件会送到你这里而不是被退回,而在只有你使用的域名上,你的各个地址可能被关联起来。对发件人来说,catch-all 地址并不危险,只是无法验证:其中一些会在事后退信,这也是 Kickbox 把它们归为 Risky(有风险)的原因。
Microsoft 365 能设置 catch-all 地址吗?
不能。Exchange Online 没有 catch-all 设置:当一个域名的所有邮箱都在 Microsoft 365 中时,它会以 550 5.4.1 拒收发往未知地址的邮件,网上流传的各种变通方法都不是官方指导。设置指南解释了 Microsoft 365 为什么没有 catch-all,以及可以改用什么办法。
Gmail 账户能设置 catch-all 吗?
@gmail.com 地址不行,因为每个地址都是一个单独的账户;不过,你自己地址的加号形式和加点形式仍然能发到你这里。如果你有自己的域名,Google Workspace 提供 catch-all 路由(即“无限别名地址”),你也可以用 Cloudflare Email Routing 这样的转发服务,把所有地址的邮件转发到普通的 Gmail 收件箱,具体见通过 Cloudflare 让 Gmail 使用自定义域名。
我该为自己的域名开启 catch-all 吗?
如果你想随时现编地址,或者不想丢失写错地址的邮件,并且愿意逐个屏蔽泄露的地址,那就开启它。如果你更愿意有意识地逐个创建地址,就保持关闭。也有折中的办法:Proton 建议把 catch-all 指向一个专用地址,以免它塞满你的收件箱;addy.io 允许你设置一个匹配模式,只有符合模式的地址才会被自动创建。如果你决定开启,设置指南列出了各家服务商的步骤;如果你的服务商不支持 catch-all,这些支持自定义域名的邮件服务商都提供这项功能。