全收邮件

电子邮件和安全
一个电子邮件设置,将域名处的所有地址路由到单个收件箱,即使地址不存在。
← 返回词汇表

什么是全收件箱邮件?

全收件箱邮件(也称为通配符邮件)是一种配置,可接收发送到域名下任意地址的邮件,并将其路由到指定收件箱。即使 anyaddress 不是已配置的邮箱,只要有人向 [email protected] 发送邮件,全收件箱也会接收。

全收件箱邮件如何工作

邮件到达邮件服务器后:

1. 地址查询:邮件服务器检查收件人是否存在

2. 全收件箱检查:如果没有找到,服务器检查是否存在全收件箱规则

3. 路由:邮件投递到全收件箱

4. 不退信:不会向发件人发送未送达报告(退信)

Traditional Setup:

[email protected] → sales inbox

[email protected] → info inbox

[email protected] → bounce (550 No such user)

With Catch-All:

[email protected] → sales inbox

[email protected] → info inbox

[email protected] → catch-all inbox ✓

[email protected] → catch-all inbox ✓

配置全收件箱邮件

cPanel/WHM 配置

Email → Default Address → Set Default Address

Select: Forward to Email Address

Enter: [email protected]

Plesk 配置

Mail Settings → Mail Forwarding

Enable "Redirect mail to address"

Enter destination address

Postfix(直接配置)

# /etc/postfix/virtual

@example.com [email protected]

# Reload Postfix

postmap /etc/postfix/virtual

systemctl reload postfix

Microsoft 365 配置

Microsoft 365 不支持真正的全收件箱,但可以创建:

Google Workspace 配置

Admin Console → Apps → Google Workspace → Gmail

→ Default Routing → Catch-all address

Enter: [email protected]

全收件箱邮件的使用场景

迁移期间

迁移到新系统时接收旧地址的邮件:

Phase 1: Enable catch-all, forward to admin

Phase 2: Monitor and create real mailboxes as needed

Phase 3: Disable catch-all once migration complete

小型组织

当员工人数少、任何成员都能处理咨询时,可以简化邮件管理。

防止拼写错误

捕获常见的拼写错误:

[email protected]   → Real mailbox

[email protected] → Caught

[email protected] → Caught

开发与测试

无需为每个地址配置邮箱即可接收测试邮件:

[email protected]  → dev catch-all

[email protected] → dev catch-all

全收件箱邮件的优势

优势说明
不会漏掉邮件拼写错误不会导致退信
设置更简单无需为每个邮箱创建账户
灵活性可以即时使用域名下的任意地址
发现需求了解用户期望使用哪些地址

缺点与风险

垃圾邮件量

垃圾邮件发送者会针对不存在的地址。全收件箱会全部接收:

Without catch-all: 100 spam attempts → 95 bounced

With catch-all: 100 spam attempts → 100 delivered

结果:垃圾邮件量会大幅增加。

反向散射与列入黑名单

服务器先接受垃圾邮件,之后又拒绝,会产生反向散射(发送到伪造发件人的退信),并可能导致 IP 被列入黑名单。

存储问题

无限的邮件地址意味着存储消耗也可能无限增加。

安全风险

攻击者可以利用全收件箱验证域名是否有效:

Test: [email protected]

Response: Accepted (catch-all exists) vs Rejected (no catch-all)

邮件身份验证复杂性

全收件箱可能干扰转发邮件的 SPF、DKIM 和 DMARC 验证。

全收件箱的替代方案

基于别名的方案

为预期的变体创建特定别名:

[email protected][email protected]

[email protected][email protected]

[email protected][email protected]

智能路由规则

为常见模式配置规则:

*[email protected]  → support queue

*[email protected] → billing queue

联系表单

用将请求在内部路由的网页表单替代电子邮件地址。

最佳实践

临时使用全收件箱

仅在迁移、活动等特定期间启用,不要永久开启。

实施严格的垃圾邮件过滤

SpamAssassin threshold: 3.0 (stricter than default 5.0)

Greylisting: enabled

DNSBL checks: multiple lists

监控全收件箱数量

跟踪被捕获的内容:

# Count catch-all deliveries by address

grep "catch-all" /var/log/mail.log | \

awk '{print $7}' | sort | uniq -c | sort -rn | head -20

为常用地址创建真实邮箱

如果监控显示出合理的使用模式,就创建真正的邮箱:

# If you see:

150 messages → [email protected] (caught)

# Action:

Create [email protected] as real mailbox

Remove from catch-all pattern

仅在子域名启用全收件箱

将全收件箱限制在子域名,不要用于主域名:

example.com           → No catch-all

test.example.com → Catch-all enabled

staging.example.com → Catch-all enabled

每日清理

自动删除垃圾邮件:

# Delete spam from catch-all daily

find /var/mail/catchall -type f -name "*spam*" -mtime +1 -delete

检测域名是否使用全收件箱

电子邮件验证服务会使用随机地址进行测试:
Send to: [email protected]

If accepted: Likely catch-all

If rejected: No catch-all

SMTP 会话测试
telnet mx1.example.com 25

HELO test.com

MAIL FROM: <[email protected]>

RCPT TO: <[email protected]>

# 250 OK = catch-all exists

# 550 No such user = no catch-all

安全考量

邮件地址枚举

全收件箱会阻止攻击者发现有效地址,但也会阻止正常的验证流程。

发件人信誉

大量接收垃圾邮件会损害域名的发件人信誉,进而影响正常外发邮件。

合规问题

GDPR 和数据保留政策可能要求拒绝不需要的邮件,而不是全部接收。

何时使用全收件箱

适合的场景:

应避免用于:

全收件箱邮件是一把双刃剑:使用方便,但风险不低。应谨慎启用并配合强力的垃圾邮件防护。

将知识付诸实践

使用 DomScan 的 API 检查域名可用性、健康状态等。