操作失误与安全
操作失误与安全相关问题共 19 问,点击问题展开答案。每条对应一个具体错误码或场景,看完即可操作。
SMTP 握手时 HELO/EHLO 命令发送的主机名不合法。合法主机名必须是 FQDN(完全限定域名,如 mail.example.com),不能是:裸主机名(mail)、IP 地址、含中文/下划线/特殊字符的名字、不存在的域名。
1. Postfix:编辑 /etc/postfix/main.cf,设 myhostname = mail.yourdomain.com,重启 postfix reload。
2. Exim:设 primary_hostname = mail.yourdomain.com。
3. Sendmail:设 confDOMAIN_NAME。
4. Docker/容器环境:用 --hostname mail.yourdomain.com 启动容器,确保 MTA 的 hostname 不是随机容器 ID。
5. 客户端(Outlook/Thunderbird):客户端本身不发送 HELO,这是发件 SMTP 服务器的配置问题——联系服务器管理员。
6. 验证:nslookup mail.yourdomain.com 必须能解析到发信 IP。
7. 用 MXToolbox SMTP Test 在线验证。
参考:RFC 5321 §4.1.1.1(EHLO 必须为 FQDN)· RFC 1035(域名规范)
发件 SMTP 服务器尝试查询收件方域名的 MX 记录(邮件交换记录),DNS 返回了 NXDOMAIN(域名不存在)或 SERVFAIL(查询失败)。SMTP 协议要求发件服务器先通过 DNS 定位收件方邮件服务器——找不到 MX 记录则回退用 A 记录,都找不到就无法投递。
1. 先确认地址没打错:gmial.com→gmail.com、qq.con→qq.com 非常常见。
2. 手工验证 DNS:命令行运行 nslookup -q=mx <收件域名>。(a) 返回 NXDOMAIN → 域名真的不存在/过期/没配 DNS → 联系收件人;(b) 返回 MX 但没 IP → MX 指向 CNAME 断了 → 对方 DNS 错误;(c) 返回正确 MX → 你的发件服务器 DNS 有问题。
3. 发件服务器 DNS 问题:Linux 编辑 /etc/resolv.conf 改用 nameserver 8.8.8.8 或 1.1.1.1;Windows ipconfig /flushdns 清除缓存。
4. Postfix 管理员:main.cf 中设 smtp_host_lookup = dns(而非 native),设 smtp_dns_resolver_options = timeout:10 避免超时假阴性。
参考:RFC 5321 §5(地址解析与 MX 查询)· RFC 1035(DNS 规范)
RFC 7208 §4.6.4 规定:SPF 每封邮件的 DNS 查询不得超过 10 次(包括 include / a / mx / ptr / exists / redirect 引发的递归查询)。超过即返回 PermError(永久错误),等同于 SPF 未通过。
典型场景:域名用了多个第三方发信服务,v=spf1 include:spf1.com include:spf2.com include:spf3.com ... ~all
每个 include 消耗 ≥1 次 DNS 查询,多层嵌套的 include(include 里又有 include)累积很容易超 10。
1. 裁剪无用 include:只保留确实在用的服务,删除已停用的
2. 合并为 IP:把低频变更的 include 手动解析为 ip4/ip6 引用
3. 展平(Flatten):用自动化工具(如 dmarcian SPF Flattener、AutoSPF)把嵌套 include 递归展开成扁平 IP 列表
4. 子域名隔离:不同服务的发信用不同子域名,各子域名配自己的短 SPF
在线检测:mxtoolbox.com/spf.aspx 或 dmarcian.com/spf-survey/
参考:RFC 7208 §4.6.4 DNS Lookup Limits · DMARCLY Safe SPF · MxToolbox SPF Checker
DMARC 通过的前提不仅是 SPF/DKIM 各自通过,还要对齐——即 SPF 的 Return-Path 域或 DKIM 的 d= 域,必须与邮件 From 头的组织域(@ 后面的部分)一致。
SPF:Return-Path 的组织域(即 registrable domain)与 From 组织域相同即可。如 Return-Path bounce@mail.example.com 与 From user@example.com 对齐通过。
DKIM:d= 标签的组织域与 From 组织域相同即可。如 d=email.example.com 对齐 user@example.com。
SPF:Return-Path 域必须完全匹配 From 域(含子域名)。mail.example.com ≠ example.com。
DKIM:d= 域必须完全匹配 From 域。
严格模式更安全但容易误杀,建议 adkim=r; aspf=r(默认宽松),新手不要设 strict。
参考:RFC 7489 DMARC §3.1 Identifier Alignment · dmarcian DMARC Alignment 解释
Google 提供的免费域名信誉监控面板(gmail.com/postmaster),可查看你域名发给 Gmail 用户的:垃圾率(Spam Rate)、IP 信誉(IP Reputation)、域信誉(Domain Reputation)、投递错误率、加密率(TLS)、反馈循环(FBL)等。
1. 用 Google 账号登录 postmaster.google.com
2. 添加你的发信域名 → Google 会提供一条 TXT 验证记录
3. 在 DNS 中添加该 TXT 记录 → 验证通过
4. 等待数据出现(需日发送 Gmail ≥ 200 封才有统计)
Spam Rate:必须 < 0.10%(千分之一),超过 0.3% 可能被暂时限制。
IP/Domain Reputation:Bad/Low/Medium/High,Medium 及以下需排查。
FBL (Feedback Loop):Gmail 用户点了"这是垃圾邮件"的报告率。
TLS:入站/出站加密率,应 ≥ 95%。
参考:Google Postmaster Tools 帮助中心 · Gmail Bulk Sender Guidelines
邮件从 alice@example.com → 你的服务器 → 转发到 Gmail。
Gmail 收到后检查 SPF:发信 IP 是你的服务器,但 example.com 的 SPF 记录里不一定有你的 IP → SPF fail。
SRS 把原始 Return-Path(信封发件人)重写为转发服务器自己的地址,格式:SRS0=HHH=TT=example.com=alice@yourdomain.com
这样 Gmail 检查的是 yourdomain.com 的 SPF → 通过。
回弹时 SRS 会自动还原原始发件人,退信正确路由回去。
Postfix:安装 postsrsd(github.com/roehling/postsrsd),apt install postsrsd → 配置 main.cf。
Sendmail:使用 srs-milter。
商业服务:多数企业邮箱和邮件转发平台内置 SRS。
确认生效:检查转发邮件的 Return-Path 头是否变成了 SRS0- 前缀。
参考:RFC 7208 SPF §2.2 Forwarding Problem · postsrsd 文档 · Oracle Messaging Server SRS 指南
行业最佳实践:每 6-12 个月 轮换一次 DKIM 密钥。Gmail 要求 DKIM 密钥至少 1024 位,推荐 2048 位(部分旧 DNS 解析器不支持 >2048)。
1. 新增 selector:生成新密钥对,用新 selector(如 202607 而非 default)发布 DKIM 公钥到 DNS:202607._domainkey.example.com TXT "v=DKIM1; k=rsa; p=..."
2. 新旧并行签名:邮件服务器同时用旧 selector(default)和新 selector(202607)签名,持续 1-2 周
3. 确认新 selector 覆盖率:检查 DMARC 报告,确认用新 selector 签名的邮件都能正常验证通过
4. 下线旧密钥:停用旧 selector 签名,删除旧 DNS 公钥记录
按上述双密钥过渡法操作,新密钥生成时指定 2048 位:openssl genrsa -out dkim_private.pem 2048
注意:部分短域名(≤3字符的 TLD 如 .ai/.io)如果 DKIM TXT 值 >255 字符需确认 DNS 支持 RFC 6376 §3.6.2.2 分段。
参考:RFC 6376 DKIM Signatures §3.6 Key Management · RFC 8301 DKIM Algorithm Update · Google Gmail DKIM 要求
这是 Email Spoofing(邮件伪造)——发件人地址可以被任意伪造,SMTP 协议本身不验证发件人身份。黑客从历史上各种数据泄露中收集你的邮箱和密码组合,拼凑出一封看似吓人的邮件:"我知道你的密码是 xxx,我黑进了你的电脑拍了你的摄像头……"实际上密码来自某次你注册过的网站被拖库,并非你的电脑被入侵。大多数情况下你不是被定向攻击,而是批量的恐吓诈骗。
1. 不要回复、不要付款——这是批量诈骗,回复只会确认你邮箱活跃。
2. 检查原始邮件头:看 Return-Path(真实发信路由)和 Authentication-Results(SPF/DKIM 验证结果),判断是否真从你域名发出。
3. 在 haveibeenpwned.com 输入你的邮箱查是否在泄露数据中。
4. 邮件中提到的密码如果确实是你用过的,立即在所有使用该密码的服务上改掉——切勿在不同网站重用密码。
5. 为邮箱开启二次验证(2FA)。
6. 域名管理员:为你的域名配置 SPF、DKIM、DMARC(p=reject)防止别人伪造你的域名发信。
参考:FBI IC3 · RFC 7208 (SPF) · haveibeenpwned.com
邮件撤回的成功率完全取决于双方使用的邮件系统。组织内部 Exchange/Microsoft 365 之间有一定撤回可能,发送到外部(Gmail/QQ/163 等)几乎无法撤回。
1. Exchange/Microsoft 365 内部撤回:打开已发送邮件 → 文件 → 信息 → 重发或撤回 → 撤回该邮件。仅当双方在同一 Exchange 组织且对方未读时生效。
2. Gmail 撤销发送:设置 → 常规 → 撤消发送,最多可设 30 秒撤销窗口。邮件一旦过了这 30 秒就无法收回。
3. 发到外部:邮件已发出 → 几乎无法撤回。如涉及机密信息泄露,应立即通知管理员和法务评估影响。
4. 预防措施:敏感邮件先写正文再填收件人;启用 Outlook 规则在每封邮件发送前延迟 1-2 分钟(在此期间可从发件箱中取消);Gmail 开启 30 秒撤销。
参考:Microsoft Exchange Message Recall · Gmail Undo Send · NIST SP 800-177 Rev.1
新 IP(或长期未发信的冷 IP)在收件方的信誉为零。突然大量发信会触发反垃圾系统的异常流量检测,导致投递率极低甚至被封锁(RFC 7489 DMARC 和邮件系统发件人指南均强调渐进式建立信誉)。
Week 1:每天 50-100 封,仅发给活跃用户(经常打开/回复的收件人),收件人域名尽量分散
Week 2:每天 200-500 封,逐步增加新收件人
Week 3:每天 1000-2000 封,引入更多收件人域名
Week 4:每天 5000+ 封,接近目标日发量
关键原则:(1) 先把邮件发给最可能打开的用户;(2) 永远保持日增量而非跳跃;(3) 每天检查 Google Postmaster Tools 垃圾率 < 0.10%
Google Postmaster Tools:监控 IP/Domain 信誉和垃圾率
Microsoft SNDS:监控 Outlook/Hotmail 信誉数据
mail-tester.com:每 1-2 天发测试邮件看评分变化
参考:邮件系统发件人指南 · Microsoft SNDS · mail-tester.com
rua(聚合报告,RFC 7489 §7.1):每天发一次 ZIP/XML,只有统计数据(哪个 IP 发了多少封、SPF/DKIM pass fail 各多少、最终处理结果)。不含邮件内容,不含收件人地址。
ruf(鉴证报告/失败报告,RFC 7489 §7.2):每次 DMARC 验证失败即时发送,包含失败邮件的主题、From、SPF/DKIM 详细结果,甚至可能包含邮件头的部分原始内容。用于精确诊断为什么某封特定邮件被拒。
注意:大部分收件方不发送 ruf 报告(隐私顾虑),Google 和 Yahoo 均已停止或大幅限制 ruf 报告。
v=DMARC1; p=quarantine; rua=mailto:dmarc@yourdomain.com; ruf=mailto:dmarc-forensic@yourdomain.com
ruf 建议用独立邮箱,因为报告量可能很大。
ruf 报告可能包含邮件主题、发件人、投递路径等。配置 ruf 前确认:(1) 邮箱符合 GDPR/《个人信息保护法》要求;(2) 通知员工其邮件头可能被第三方以 ruf 形式发回。
参考:RFC 7489 DMARC §7.1-7.2 · dmarcian
邮件发到邮件列表(如 Mailman、Google Groups)或经中间服务器转发后,中间服务器会修改主题加 [list] 标记、修改正文加退订链接等。这导致原始 DKIM 签名中的 body hash 不再匹配 → DKIM fail → DMARC fail → 邮件被拒或进垃圾箱(RFC 8617 §1)。
ARC(RFC 8617)在邮件头中插入 ARC-Authentication-Results、ARC-Message-Signature、ARC-Seal 三条链,记录原始 SPF/DKIM/DMARC 验证结果,并用中间服务器自己的 DKIM 签名覆盖验证。收件方可以沿 ARC 链回溯原始验证状态,判断中间服务器是否可信。
作为发件方:(1) 对邮件列表场景使用温和 DMARC 策略(p=none 或 p=quarantine 而非 p=reject);(2) 对于已知的重要邮件列表,请求管理员启用 ARC 签名(主流的如 Google Groups、Mailchimp 已支持);(3) 作为收件方管理员:在 MTA 中启用 ARC 验证(Postfix+OpenARC、rspamd ARC 模块)。
参考:RFC 8617 ARC · OpenARC · Google Groups ARC 支持
不自动继承。每个子域名的 SPF 是独立的。如果主域 example.com 有 SPF,但 mail.example.com 没有,则 email@mail.example.com 发信时 SPF 查询返回 none(等同于不设 SPF)。必须为每个实际发信的子域名单独添加 SPF TXT 记录。通常做法:子域 SPF 指向主域 SPF:v=spf1 include:example.com ~all
部分继承。DKIM d= 标签可指向组织域(如 d=example.com),子域名发信时引用主域 DKIM 签名即可。但如果 DKIM d=mail.example.com,必须为子域单独发布 selector._domainkey.mail.example.com 公钥。
自动继承。如果子域没有 DMARC 记录,收件方会查父域的 DMARC 记录——"Tree Walking"(RFC 7489 §6.6.3)。要精确控制子域行为,建议每个子域单独发布 DMARC,通过 sp= 标签指定子域策略:_dmarc.example.com TXT "v=DMARC1; p=reject; sp=quarantine; ..."
sp=none/reject/quarantine 仅对子域生效,不影响主域。
参考:RFC 7489 DMARC §6.6.3 · RFC 7208 SPF · dmarcian
旧私钥不可恢复 → 旧 DKIM 公钥仍存在 DNS 中 → 当前发出的邮件用旧公钥验证会失败(没私钥签名)→ DKIM fail。必须立即生成新密钥以恢复签名。
1. 生成新密钥对:openssl genrsa -out dkim_new_private.pem 2048 + openssl rsa -in dkim_new_private.pem -pubout -outform PEM
2. 用新 selector 发布:选择从未用过的 selector 名(如 202607),在 DNS 发布新公钥:202607._domainkey.example.com TXT "v=DKIM1; k=rsa; p=..."
3. 配置邮件服务器用新 selector 签名:在 Postfix/昆仑邮件系统中配置新私钥路径和 selector
4. 保持旧 DNS 记录 48 小时:等缓存中的旧签名邮件全部被投递完毕后,再删除旧的 default._domainkey DNS 记录
5. 验证:用 mail-tester.com 发测试邮件确认新 selector DKIM-pass
如果之前是 1024 位密钥,这是升级到 2048 位的好时机。推荐新 selector 双轨过渡而非直接覆盖旧公钥。
参考:RFC 6376 DKIM Signatures §3.6.2 · RFC 8301 DKIM Algorithm Update · OpenDKIM 文档
Google Postmaster Tools(GPT)是 Google 免费提供的邮件发件人数据平台,显示你的域名/IP 在 Gmail 系统中的送达表现——包括 合规状态(SPF/DKIM/DMARC/PTR/TLS 是否通过)、用户垃圾投诉率(接收者标记为垃圾邮件的比例)、认证状态、投递错误 等。它不是黑名单,是你的域名在 Gmail 生态的「体检报告」。2025 年 10 月后 Google 淘汰了 v1 界面和「IP 信誉」「域名信誉」仪表板,v2 界面聚焦于 合规状态仪表板(六大项:SPF 认证、DKIM 认证、DMARC 对齐、PTR 正向/反向 DNS、TLS 加密、一键退订)和 垃圾率仪表板(用户举报垃圾邮件的实时百分比)。
Step 1:添加域名
访问 postmaster.google.com → 用 Gmail 账号登录 → 左下角「+」添加域名。
Step 2:验证域名所有权
GPT 会生成一条 TXT 验证记录,添加到域名的 DNS 中:
主机记录:@ 或留空(取决于 DNS 服务商)
记录值:google-site-verification=...(一串随机字符串)
添加后点击「验证」→ 通常几分钟内生效。
Step 3:等待数据积累
验证通过后,GPT 需要 至少发送数百封邮件到 Gmail 用户 才开始显示数据。常规流量域名通常 1-3 天后数据开始出现。低流量域名(每天 <100 封到 Gmail)可能始终显示「没有数据」。
合规状态仪表板——你的技术清单:
该仪表板列出 SPF、DKIM、DMARC、PTR、TLS 加密、一键退订六项是否「通过」(绿色)或「失败」(红色)。任何一项红色 = 你的域名未满足 Gmail 2024 年起的最低发件人要求,可能导致拒收或垃圾箱。Gmail 从 2025 年 11 月起对不合规域名执行 5xx 级拒收。
垃圾率仪表板——你的用户行为红线:
Google 要求垃圾投诉率 始终低于 0.3%(即每 1000 封进收件箱的邮件≤3 封被标记为垃圾)。计算公式:(用户标记为垃圾的邮件数 ÷ 进入收件箱的邮件数) × 100。
注意:如果邮件未进收件箱(直接被拒收),不会被计入分母。因此垃圾率仪表板可能低估真实投诉比例。
垃圾率 >0.3% 时:立即停止发送非必要邮件,检查近期邮件内容是否触发垃圾关键词(促销、免费、立即点击等),确认退订链接醒目且有效——用户找不到退订按钮 = 最高频的垃圾投诉原因。
GPT 有两个重要盲区:(1) 只报告用户手工点击「报告垃圾」的数据,不显示 Gmail 自动将邮件归类到垃圾箱的过滤决策——邮件被 Gmail AI 判定为垃圾但没有用户举报的话,GPT 不会反映;(2) 只覆盖 Google 邮箱用户,不适用于 Outlook/Yahoo/企业邮箱等其他收件方。因此 GPT 应配合第三方收件箱监控工具(如 GlockApps、MXToolbox Deliverability Monitor)使用,才能全面了解送达率。
参考:Google Postmaster Tools 官方帮助 · Google Email Sender Guidelines(2024 年更新)· RFC 7489
Spamhaus 维护三个主要 DNSBL 列表,全部整合在 ZEN(综合 DNSBL) 中:
• SBL(Spamhaus Block List):手动列入的已知垃圾邮件发件源、僵尸网络 C&C——很少误判,列入说明你的 IP 确实在发送垃圾邮件或被入侵。
• XBL(Exploits Block List):自动检测的恶意软件、被入侵设备、开放代理——实时动态更新。
• PBL(Policy Block List):不是 被作为垃圾源列入的——这个是「策略阻止列表」,列入的是 ISP 主动声明「这些 IP 不应该直接对外发信」的地址段,如住宅宽带 DHCP 池、云服务商未申请解封的网段。
关键区别:SBL 列入 = 你的 IP 有罪,需要调查、清除、申诉。PBL 列入 = 你的 IP 可能只是在一个策略阻止范围内,但你不是垃圾发件人——只需自助移除即可。
Step 1:查 IP 是否在 PBL
打开 spamhaus.org/query/ip/你的IP地址,查看返回结果。如果显示 is listed in the PBL,继续下一步。
Step 2:点击页面中的 PBL 条目编号
常见格式:PBL123456 或 PBL IP Address Lookup。
Step 3:点击 Remove an IP from PBL
进入移除页面后填写:
• IP 地址(要移除的 IP)
• 联系邮箱(接收验证邮件)
• 所属国家
• IP 类型:选 Static(静态 IP)——云服务器的公网 IP 几乎都是静态的
• 移除原因:说明这是固定 IP 的邮件服务器,需要对外发信(英文:"This is a static IP address on a VPS/mail server. It needs to send mail directly to external domains.")
• 如果页面要求域名:填写你的邮件服务器主机名/域名
Step 4:验证邮箱
提交后 Spamhaus 会发送验证邮件到填写的邮箱 → 点击邮件中的验证链接 → 页面自动跳转确认移除。
Step 5:等待生效
移除请求处理后,PBL 中通常在 几分钟到 1 小时 内清除。使用 MXToolbox Blacklist Check 或 mxtoolbox.com 确认。
会。如果 IP 在 ISP 的 PBL 策略网段中(如阿里云/腾讯云/华为云默认的所有 VPS 网段都在一些 ISP 的 PBL 中),PBL 移除只是暂时的。建议:(1) 如果发信 IP 仍在 PBL 策略网段中,可能需要每几个月重新移除;(2) 确认 IP 不是动态 DHCP 池中的——Spamhaus 会定期扫描并重新列入动态地址;(3) 长期方案:考虑使用固定 IP 的中继服务(SMTP relay service)。
参考:Spamhaus Blocklist Removal Center · spamhaus.org/pbl · RFC 5782(DNSBL 实践建议)
收件方 MTA 建立 SMTP 连接时的三步验证:(1) 你的 IP 连接过来 → 查 PTR 记录(反向 DNS)→ 得到主机名(如 mail.yourdomain.com);(2) 正向查该主机名的 A 记录 → 确认指向你的 IP(正反向 DNS 闭环);(3) 你的 SMTP 服务器在 220 响应的 Banner 中自报的主机名也要与 PTR 解析出的主机名一致。这三步任一不一致,都可能被判定为「你的 IP 是谁都说不清楚,可能是垃圾邮件发件源」。
MXToolbox 的 SMTP Test 显示 Reverse DNS does not match SMTP Banner 就是第三步——你的 SMTP 服务器说的主机名跟 PTR 记录指向的域名不一致。
Step 1:检查当前 PTR 记录nslookup 你的发信IP → 记下返回的域名(如 mail.hostprovider.com)。
Step 2:检查当前 SMTP Bannertelnet 你的发信主机名 25 或 openssl s_client -connect 你的主机:25 -starttls smtp → 看 220 后面跟的主机名(如 220 mail.yourdomain.com ESMTP Postfix)→ 记下来。
Step 3:对齐两种方案
方案 A(推荐):修改 SMTP Banner 主机名以匹配 PTR → Postfix:/etc/postfix/main.cf 中设 myhostname = 与PTR一致的域名 → systemctl reload postfix。
方案 B:修改 PTR 以匹配 Banner → 联系云服务商/ISP 将 IP 的 PTR 改为你的 SMTP Banner 主机名。
Step 4:验证对齐
去 MXToolbox → SMTP Test → 输入你的发信域名 → 看 SMTP Banner Check 和 Reverse DNS 项都显示绿色 √。
/etc/postfix/main.cf:myhostname = mail.yourdomain.com ← 这个值会在 Banner 中显示mydomain = yourdomain.comsmtpd_banner = \$myhostname ESMTP ← 使用系统主机名作为 Banner
验证:postconf -n | grep -E "myhostname|smtpd_banner"。Exim:primary_hostname = mail.yourdomain.com。
注意:有些反垃圾系统还会检查 Banner 中的主机名和 HELO/EHLO 是否一致——如果邮件客户端用 EHLO laptop.local,Fix 方法见 FAQ 第78题(HELO/EHLO 主机名不匹配)。
参考:RFC 5321 §4.3.1(SMTP 验证序列)· RFC 1912 §2.1(PTR 最佳实践)· Postfix smtpd_banner 文档
收件方邮箱存储空间已满,无法接收新邮件。SMTP 会话中 RCPT TO 阶段通过,但邮件最终投递到收件箱时 MTA 发现邮箱配额耗尽 → 生成退信。退信代码体系:552 = 邮件数据太大或存储满了(RFC 5321 §4.2.5),5.2.2 = 持久性失败·邮箱问题·超出配额(RFC 3463)。Microsoft Exchange 中 STOREDRV.Deliver.Exception:QuotaExceededException.MapiExceptionQuotaExceeded 是该错误的内部表述。
默认不能。SMTP 协议不支持发件方「强制投递」到已满邮箱——这是防滥用的设计。如果收件方 MTA 开启了邮箱溢出自动清理或临时超配额允许,邮件可能会等待:一些 MTA 在退信前尝试 72 小时(由 maximal_queue_lifetime 决定)内重试。如果这期间收件方清理了空间 → 邮件正常投递。
但大多数现代 MTA(Gmail、Exchange Online、outlook.com)对 quota-exceeded 直接生成 NDR(Non-Delivery Report),不重试。
1. 告知收件人:通过其他渠道(微信/电话/文字消息)通知对方邮箱已满,请对方清理空间后你重新发送。
2. 重新发送不要立即:邮件已满的邮箱清理空间后立即收到大量旧退信的重试——可能会再次填满。建议等 1-2 小时后重新发送。
3. 附件很大的话:邮件附件通常占空间大。考虑改用文件分享链接(如微云/OneDrive/Google Drive)替代附件,发送纯文本链接。
4. 如果对方是企业客户:提醒对方 IT 管理员提高邮箱配额——Exchange Online 默认邮箱大小为 50GB/100GB(视许可证),满到这个程度说明邮件量异常大或配额设置不当。
参考:RFC 5321 §4.2.5(552 响应码)· RFC 3463(增强状态码)· Microsoft Learn: NDR error 554 5.2.2 mailbox full
Google 从 2024 年 2 月起实施更严格的大规模邮件发送者要求。核心红线:向 Gmail 用户发送的任何邮件,用户垃圾投诉率必须始终低于 0.3%(即每 1000 封进收件箱的邮件≤3 个投诉)。
不同投诉率后果:
• ≤0.1%:正常——绝大多数合规发件人低于此线。
• 0.1%-0.3%:黄色警告区间——Gmail 不会主动拒收但可能增加垃圾箱投递比例。
• >0.3%:红色——可能触发全部邮件进垃圾箱或直接拒收。
• >0.5% 并持续:域名/IP 可能被 Gmail 降级——影响所有邮件投递质量。
按频率排序:
1. 退订链接不易找到——用户在邮件底部找不到退订按钮 → 退订无门 → 点击「报告垃圾邮件」→ 退订链接必须位于邮件底部、文字醒目(不能是灰色小字)、直接跳转退订页面(不要跳首页)。
2. 发错了——用户没注册/没同意接收——你的邮件列表没有验证 opt-in 状态。任何购买的邮件列表 100% 会产生高投诉率。
3. 内容与用户预期不符——用户注册的是「每月产品更新」,你发的是「每日促销」→ 心理预期落差 → 投诉。
4. 发信频率过高——每天多发 ≠ 效果好。每周 1-2 封营销邮件是大多数行业的最佳频率。
1. 确认退订链路完整体验:用自己的 Gmail 账号订阅你的邮件列表 → 找退订按钮 → 点退订 → 确认不再收到邮件 → 全过程 ≤30 秒 → 才算合格。
2. 支持一键退订:在邮件头中加 List-Unsubscribe 和 List-Unsubscribe-Post 头(RFC 8058)→ Gmail 会在界面顶部显示一个「退订」按钮。
3. 未互动的用户做日落策略:超过 6 个月没打开/点击任何邮件的用户 → 先发「确认继续接收」邮件 → 未确认的 → 从发送列表清除。不互动的用户是最可能投诉的。
4. 设置发件人地址识别:用户能一眼认出谁发来的邮件——发件人显示名要稳定,不能今天叫「系统通知」明天叫「客服团队」。
5. Google Postmaster Tools 监控:至少每周检查一次 GPT 的垃圾率仪表板,发现上升趋势立即切消费确认邮件。
参考:Google Email Sender Guidelines(2024 年更新)· RFC 8058(List-Unsubscribe)· Google Postmaster Tools v2 · Mailgun: How to Keep Your Spam Complaint Rate Low
