邮件转发

Catch-all地址:工作原理、风险与替代方案

作者:Alexey Bulygin
对比Catch-all地址、明确配置的邮件别名和加号寻址的域名收件方案

Catch-all 邮件地址用于接收发给域名内未知收件人的邮件。有人输入 slaes@yourcompany.com,而本来想联系 sales@,这条规则可能接住真实询盘,避免因地址拼错而无法送达。这很方便,但只是事情的一面。

这张安全网也扩大了接收范围,任意编造的收件人名称都可能进入处理流程。自动地址探测和垃圾邮件可能增加;收信后向伪造发件人退信会产生反向散射;后续转发还需核验认证。这些是需要管理的风险,并非所有 catch-all 配置都会必然出现的结果。

本文介绍 SMTP 处理、三类运营风险,以及更可控的地址方案。具体路由可参考保持控制的域名 catch-all 指南

什么是 catch-all 邮件地址?

Catch-all 也称通配地址,本质上是服务器规则:将域名内未创建收件人的邮件送到指定邮箱。服务器可能对 RCPT TO 返回 "250 OK",而不是 "550 User unknown"。后续检查仍可能拒收,并不意味着任何邮件都能通过。

在 SMTP 阶段、传输邮件内容前拒绝未知收件人,本文称为默认拒绝(fail-closed)。Catch-all 则对收件人检查采用默认放行(fail-open)。真实拼写错误和虚构地址可能进入同一路径,但反垃圾邮件及其他接收检查是独立机制。

迁移时,这有助于发现未知旧地址。长期使用则应权衡收益、处理成本与防护措施。

Catch-all 在 SMTP 层如何工作

收件人检查发生在 RFC 5321 定义的 RCPT TO 阶段,早于 DATA 中的邮件头、正文和附件传输。接受收件人不等于最终接受邮件。以下是简化示例。

不使用 catch-all:默认拒绝

SENDER:      RCPT TO: <ghost@yourdomain.com>
YOUR SERVER: 550 5.1.1 User unknown
RESULT:      Connection closed. Zero data transferred.

服务器在 SMTP 会话中拒绝收件人,发送方系统之后可能生成未送达通知。连接不必因此关闭。"Zero data" 指未传输邮件负载,不是没有交换 SMTP 控制数据。通常无需为该收件人保存邮件内容或执行内容扫描。

使用 catch-all:默认放行

SENDER:      RCPT TO: <ghost@yourdomain.com>
YOUR SERVER: 250 2.1.5 OK
RESULT:      Server accepts headers, body, and attachments.
             Routing logic directs mail to the catch-all mailbox.

服务器首先接受了收件人,只有完整邮件传输结束且最终接收成功后才承担投递责任。垃圾邮件、恶意内容和自动探测届时可能占用存储与过滤资源。在技术上合适时,应在 SMTP 阶段拒绝不需要的邮件,而不是事后向可能伪造的地址发送通知。

Catch-all 的三类运营风险

重点检查地址探测及多余邮件量、事后退信造成的反向散射,以及转发认证。Catch-all 可能扩大接收面,但不会自动造成每一种后果。

1. 目录收集攻击(DHA)

垃圾邮件发送者会自动探测数千种常见名称,如 admin、invoice、hr、accounts、david、noreply、info 和 billing,试图找出真实存在的收件人。

不用 catch-all 时,550 响应可能暴露哪些地址不存在,但不会迫使攻击者停止。启用后,收件人检查可能统一返回 250 OK,让真实与虚构地址无法通过这种方式区分。然而,探测仍可能制造大量额外邮件,真实客户消息容易淹没在数千封发给从未创建地址的邮件中。

2. 反向散射与信誉风险

服务器接受邮件后,向被伪造的发件人地址发送未送达通知,会产生反向散射。此类通知可能损害信誉,并增加进入例如 ips.backscatterer.org 等阻止列表的风险。

可能的过程如下:

  1. 垃圾邮件发送者向 random@yourdomain.com 发送恶意邮件,将 MAIL FROM 伪造成 innocent@gmail.com。
  2. Catch-all 接受收件人,邮件也通过其余接收检查。
  3. 之后的病毒扫描发现恶意内容,阻止内部投递。
  4. 服务器生成 Non-Delivery Report(NDR),发送给 innocent@gmail.com。
  5. 无辜的 Gmail 用户收到不需要的退信通知。

大量此类通知可能造成信誉问题或列表记录,并非必然被封。应避免向伪造发件人发送事后 NDR 和自动回复,考虑在 SMTP 阶段拒绝,或采用安全隔离处理。

3. 转发陷阱:SPF 失败

一些运营者将 *@company.com 的 catch-all 邮件转到个人 Gmail。应核验实际转发路径的认证;catch-all 本身不会改变 SPF。

普通转发由你的 IP 连接,但 MAIL FROM 可能仍是原发件人域名,例如 bankofamerica.com,其 SPF 不一定授权你的服务器。SRS 邮件转发会改写信封身份,新域名的 SPF 必须授权中继 IP;这并不自动满足原 From 的对齐。成功且对齐的 DKIM 可以在没有 SRS 或 ARC 时满足 DMARC。ARC 需要验证真实链,并由接收方信任已核实的签署方。Gmail 可能拒绝、延迟或过滤,不能一概说会静默丢失;这些机制也不保证送达。

Catch-all 的替代方案

已知功能地址和邮件标记通常可以采用显式别名或受支持的加号地址。应依据需求和服务器实际实现选择。

项目 Catch-all 地址 显式别名 加号地址
语法 *@domain.com sales@domain.com user+tag@domain.com
收件人检查 路由未知收件人 通常拒绝未知收件人 使用受支持的基础地址和标记
垃圾邮件风险 可能增加多余邮件量 接收更明确,但不是完整防护 取决于实现和使用方式
TrekMail 成本 核验当前套餐权限 核验当前费用和限额 核验支持情况与现行条件

对于已知地址,显式别名通常是合适的起点。明确有效收件人,并确认其他地址在 SMTP 阶段被拒绝。可阅读邮件别名转发以及域名别名与邮箱的区别来规划结构。

许可证成本不意味着必须使用 catch-all

部分小企业希望避免额外用户许可。历史示例中,Google Workspace 每用户每月 $6,sales@、support@、billing@ 分别使用独立许可邮箱,三个地址每月共 $18。现行价格可能不同,别名、共享邮箱和已有许可也可能提供其他选择。单邮箱配合 catch-all 不是唯一方案。

TrekMail 描述采用账户级共享存储,而非仅按用户数收费。应核验当前总容量、单个邮箱的配额、邮箱数量限额和新增账户费用。如果所需邮箱已包含在套餐内,就可能不必为节省许可成本而使用 catch-all。

按用户许可的历史示例 TrekMail 示例
3 个功能邮箱 Workspace 示例每月 $18 Starter 示例合计每月 $3.50
50 个邮箱 许可示例每月 $300 历史示例每月 $3.50
是否必须用 catch-all 节省费用 不一定,检查其他地址模式 核验新增邮箱权限
SMTP 收件人检查 许可模式不强制默认放行 核验实际默认设置

历史 Starter 描述为每月 $3.50,最多 50 个域名,每域名 100 个邮箱。规划前应确认当前条件。显式建立 sales@、support@、billing@、info@ 等真正需要的地址,同时验证未知收件人的拒绝处理。

必须使用 catch-all 时,设置独立检查邮箱

迁移期间,暂时接住未知旧地址可能有实际价值。应将邮件送到独立检查邮箱,而不是不受控地进入工作收件箱。该邮箱不是安全沙箱,仍需单独保护访问、过滤、保留策略与附件处理。

  1. 创建专用邮箱:catchall-quarantine@yourdomain.com,不使用任何人的主要收件箱。
  2. 配置路由:仅将未知收件人送到这里,限制访问,不启用自动转发或回复。
  3. 减少通知:按客户端支持情况和实际规则使用合适标记与安全过滤,不能仅把恶意邮件标为低优先级就认为安全。
  4. 每周审查:确认旧地址仍有真实用途后,为其创建显式别名。
  5. 设置结束条件:例如连续 30 天没有真实发现后评估关闭,同时考虑低频及季节性邮件。

这样,catch-all 是地址盘点工具,而不是被遗忘的长期设置。找到需要保留的旧地址,显式创建,并在任务完成后关闭临时路由。

代理机构:明确覆盖标准地址

管理 100+ 个域名时,手工创建重复的客户地址会增加工作量。可为 postmaster@、abuse@、accounts@、info@ 建立统一规范,并使用当前真实可用、已有文档的操作。采用自动化或别名模板前,应核验 TrekMail 代理方案的支持情况,不能假定存在跨域名一键创建功能。

postmaster@、abuse@ 等角色地址由 RFC 2142 及相关 SMTP 要求说明。运行中的 SMTP 投递或中继服务必须支持 postmaster;abuse 等其他角色的要求应按所提供服务和适用标准核验。并非每个角色地址都无条件适用于所有域名。批量设置前应核验要求和当前 Agency 功能。

什么时候可以使用 catch-all

以下是三种限时使用示例:

  • 正在迁移:旧系统的完整地址目录尚未整理完成。
  • 收购域名:需要审查历史收件人,再决定保留哪些地址。
  • 预发布测试环境:让虚构测试地址在无需逐一创建的情况下进入受控目的地。

这三种场景通常适合限时使用和受保护的检查邮箱,任务完成后关闭路由。长期受控 catch-all 也可能有合理需求,但应有适当防护和持续监测。

评估 catch-all,而不是默认启用

接住偶发拼写错误,需要同时考虑三类可能成本:虚构地址带来的多余流量、不安全退信造成的反向散射,以及转发认证问题。应按真实邮件路径评估。

如果主要目的是节省邮箱许可费,应先比较地址和计费模式。TrekMail 共享存储可能在套餐权限内支持所需邮箱。Sales@、support@、billing@ 加上另外 47 个地址是规划示例,不是按当前价格提供无限资源的承诺。

核验14 天试用的现行条件,包括可能的银行卡要求。Nano 被描述为免费、免卡且无试用期的方案,应确认当前可用性和条款。只有在这里描述的 Nano BYO SMTP 模型中,所有发信与回复都需要使用自己的外部 SMTP;付费方案的托管发信则取决于实际套餐权限及受支持的客户端配置。

分享这篇文章

我们使用运行和保护 TrekMail 所必需的技术。确认后还会允许《Cookie 政策》中所述的有限分析和广告衡量。

登录 TrekMail

访问您的控制面板、邮箱和 DNS。

12 个字符 两次密码一致

重置邮件已发送

如果该邮箱对应已有账户,我们已发送密码重置说明。

继续即表示您同意 TrekMail 的 服务条款隐私政策.