新功能

使用邮件投递中心掌控您的邮件投递新功能:邮件投递中心,更智能的邮件投递 阅读更多 >

邮件为什么会进垃圾箱?先排查这几项:SPF、DKIM、DMARC 与发信限制

大多数进入垃圾箱的邮件,问题都出在身份验证或发送方式上。本文介绍在 WebGee 主机上应按什么顺序排查:从 SPF、DKIM、DMARC,到发信限制和常见的 550 退信。

AI 总结:

邮件进了收件人的垃圾箱,原因其实很少是个谜。邮件能否顺利送达取决于四个方面:身份验证、发送方式、发送内容以及域名信誉。请按这个顺序逐一排查,因为前两项占了绝大多数情况。

要点速览

  1. 先检查身份验证:cPanel 的 Email Deliverability 页面会一并校验 SPF、DKIM 和 DMARC,并指出问题所在。
  2. 让 cPanel 为你生成 SPF 记录,不要照抄别处的记录,因为正确的 include: 取决于你的账户所使用的中继服务器。
  3. DMARC 先从 p=none 开始,等报告显示所有合法发件来源都能通过验证后,再收紧为 quarantine 或 reject。
  4. 使用自己域名下的邮箱地址,通过 SMTP 进行身份验证后发信,避免使用 PHP mail()。
  5. 外发邮件按每个域名每小时计算限额,营销邮件必须通过专门的批量邮件服务发送。

先从身份验证入手

收件服务器会检查你是否有权以你的域名发信。未通过这些检查的域名几乎在所有地方都会被过滤,所以请先解决这一点。

这项工作由三条记录完成:

  • SPF 列出允许以你的域名发信的服务器。
  • DKIM 为你的邮件签名,让收件方可以验证。你可以在 cPanel → Email Deliverability 中按域名启用它。
  • DMARC 告诉收件服务器如何处理 SPF 和 DKIM 验证失败的邮件,并要求它们反馈报告。

请先打开 cPanel → Email Deliverability。它会校验这三项并显示问题所在。如果这里报告了问题,那么你改动其他任何地方都作用不大。

设置 SPF 记录

从 WebGee 账户发出的每一封邮件,都会经由专用外发中继 MailBaby 发出,而不是使用你服务器自身的 IP。这个中继必须在你的 SPF 记录中获得授权,否则每封邮件都会 SPF 验证失败。

  1. 在 cPanel 中,打开 Email 下的 Email Deliverability。
  2. 找到你的域名,选择 Manage。
  3. 如果你的 DNS 托管在 cPanel 中,选择 Install The Suggested Record。如果托管在其他地方,例如 Cloudflare 或域名注册商,请复制建议的值,并在那里创建一条 TXT 记录。

WebGee 的 SPF 记录类似这样:

v=spf1 a mx include:spf-c.mailbaby.net ~all

不要从文档中复制 SPF 记录 include: 中的中继主机名可能因服务器而异,如果记录中写的是错误的主机名,你发出的每一封邮件都会 SPF 验证失败。请从你自己的 Email Deliverability 页面获取准确的值。如果你的 SPF 记录仍然引用 relay.mailchannels.net,就需要更新,因为外发中继已由 MailChannels 更换为 MailBaby。

如果你还通过其他服务发信,请把它们都添加到同一条记录中。一个域名必须有且只有一条 SPF 记录:存在两条记录属于永久性错误,收件方会视同没有 SPF。SPF 还规定最多只能进行 10 次 DNS 查询,每个 include: 至少占用一次。超出限制会产生 permerror,其结果与没有记录完全一样。

完整的操作步骤请参阅设置 SPF 记录。

启用 DKIM,再发布 DMARC

在同一个 Email Deliverability 页面上启用 DKIM。添加 DMARC 之前,请确认 SPF 和 DKIM 都显示为有效。如果域名的 SPF 尚未正常工作就添加 DMARC 记录,你自己的合法邮件也会开始验证失败。

要添加 DMARC,请选择域名旁边的 Manage,滚动到 DMARC 部分,然后选择 Install The Suggested Record。建议的记录仅用于监控,这正是合适的起点。请添加一个报告接收地址,以便收到汇总报告:

v=DMARC1; p=none; rua=mailto:[email protected]

请分阶段收紧策略。当报告显示只有非法来源验证失败时,改为 p=quarantine,此时验证失败的邮件会被投递到垃圾箱。确认无误后,再改为 p=reject,直接拒收这些邮件。不要一开始就使用 p=reject:营销平台、开票系统、CRM 和客服系统常常以你的域名发信,任何未被 SPF 和 DKIM 覆盖的服务都会无法送达,而且你不会看到任何退信。

如需在 Zone Editor 中手动添加记录以及解读报告,请参阅发布 DMARC 记录。

检查域名服务器指向哪里 如果你的域名服务器不是 WebGee 的,cPanel 会提示它无法控制该域名的 DNS。此时即使安装记录看似成功,实际上也不会有任何变化。请在你的域名服务器实际指向的 DNS 服务商处添加 SPF 和 DMARC 记录。

用正确的方式发信

通过 SMTP 进行身份验证。未经身份验证就发信,会立刻提高垃圾邮件评分。请在邮件客户端中确认已启用 My outgoing server requires authentication(我的发送服务器要求身份验证),并且使用与收信相同的用户名和密码。即使你认为已经开启,也请再检查一遍,因为有些客户端在更改密码后会悄悄丢失这项设置。请参阅解决“550 Please turn on SMTP Authentication”错误。

不要使用 PHP mail()。它通过服务器主机名中继邮件,而你的应用程序声明的却是另一个发件人地址,收件方会把这种不一致视为伪造。请将你的应用程序或 WordPress 网站配置为使用真实邮箱通过 SMTP 发信。请参阅启用 PHP mail()。

使用自己域名下的地址发信。如果从你的服务器以 [email protected] 这样的地址发信,将无法通过对齐检查。

留意邮件内容

垃圾邮件评分会对一些典型特征作出反应。对于合法邮件来说,通常只是其中一两项在作怪:

  • 主题全部大写,或使用大量感叹号
  • 群发邮件常见措辞,例如“立即行动”“限时”或保证回报
  • 整封邮件就是一张大图,几乎没有文字
  • 使用 bit.ly 之类的短链接,隐藏了真实目标地址。请使用完整 URL。

了解 550 垃圾邮件退信

WebGee 会在外发邮件发出前对其进行扫描。评分超过阈值的邮件不会被发送,而是退回给你,退信内容如下:550 This message was classified as SPAM and may not be delivered

这样做是为了保护共享的发信信誉。最常见的原因是邮件客户端未经 SMTP 身份验证就发信,这可能使一封原本普通的邮件超过阈值。请先解决这一点,然后检查上面提到的内容特征,修改措辞后重新发送。如果邮件能够发出,说明问题出在内容上。

如果在检查过身份验证和内容之后,普通邮件仍然屡次发送失败,请提交工单,并附上完整的退信内容和邮件头。请参阅解决“550 This message was classified as SPAM”错误。

遵守发信限制

外发邮件按每个域名每小时计算限额,具体取决于你的套餐。Infinity Hosting 和 cPanel Reseller Hosting 等套餐为每小时 150 封,WebGee Workspace 和 Premium Hosting — Business 为 250 封,Premium Hosting — Platinum 最高可达 500 封。没有每日限额。另有 25% 的超额缓冲,超出每小时阈值的邮件会进入队列,而不是被拒绝;超出缓冲后,外发尝试将被拒绝。

账户发出的所有邮件都计入限额:邮件应用、网页邮箱、联系表单、订单确认、密码重置以及邮件列表流量。一个繁忙的 WooCommerce 商店仅交易类邮件就可能占用相当一部分限额。

当某个账户在一小时内向 250 位或更多收件人发信,或在 24 小时内发送超过 500 封邮件时,自动监控会发出通知,并可能实施封禁。如果你收到此类通知,而自己并没有进行批量发信,请将其视为账户可能已被入侵:更改邮箱密码,并在 cPanel 中查看 Track Delivery。

WebGee 的邮件服务不允许发送营销邮件。请使用专为营销活动打造的服务,例如 Mailchimp、SendGrid 或 Brevo。如果你发送的合法邮件已经触及限额,可以让应用程序的邮件通过第三方 SMTP 中继发送,或升级到限额更高的套餐。完整的限额表请参阅邮件发送限制。

维护域名信誉

由于外发邮件通过专用且受监控的中继发送,发信 IP 的信誉基本由我们为你打理,其他用户的问题也不会波及你。这也意味着独立 IP 并不能提升邮件送达率。请参阅外发邮件如何中继。

域名信誉则需要你自己维护。邮箱被入侵后发送垃圾邮件、向购买或抓取来的名单发信,以及收件人频繁将邮件标记为垃圾邮件导致的高投诉率,都会损害域名信誉。

诊断某一封具体的邮件

当某封邮件被过滤时,请获取它的完整邮件头。在 WebGee 网页邮箱中,打开该邮件,选择 ⋮ 菜单,然后选择 View Source。在 Gmail 中,使用显示原始邮件。

Authentication-Results 邮件头会显示 SPF、DKIM 和 DMARC 是否通过,X-Spam-Score 或 X-Spam-Status 则显示该邮件离阈值有多近。由此你就能判断问题只有一个还是有好几个。联系技术支持时,请以文本形式粘贴完整的邮件头,而不是截图。

Outlook、Apple Mail 和 Thunderbird 的操作说明请参阅获取邮件的完整邮件头。

在 Mail Delivery Center 中跟踪投递情况

Mail Delivery Center 会显示外发邮件离开服务器之后的去向。其中的 Email Deliverability 页面会逐日对比你在 Gmail、Microsoft、Yahoo/AOL 及其他服务商处的送达率,并列出是哪个发信域名导致了问题,包括各域名是否配置了 DMARC 记录。

如果送达率在数周内逐渐下降,通常是信誉问题。如果某一天突然下降,则说明当天发生了某项变化,例如启用了新的发信应用、使用了购买的名单、邮箱被入侵或修改了 DNS。请参阅邮件送达率。

邮件送达率检查清单

  • cPanel → Email Deliverability 显示 SPF、DKIM 和 DMARC 均有效
  • 你的域名有且只有一条 SPF 记录,且取自 cPanel 的建议值
  • 记录发布在域名服务器实际指向的位置
  • DMARC 从 p=none 开始,并配置了报告接收地址
  • 邮件客户端和应用程序通过 SMTP 进行身份验证后发信,而不是使用 PHP mail()
  • 发件人地址属于你自己的域名
  • 营销活动通过专门的批量邮件服务发送
  • 发信量保持在套餐的每小时限额之内
让邮件准确送达WebGee 企业邮箱通过专用外发中继发信,并提供 cPanel 工具,帮助你为域名配置 SPF、DKIM 和 DMARC。
了解企业邮箱

常见问题

我可以直接复制 WebGee 文档中的 SPF 记录吗?

不可以。正确的 include: 取决于你的账户使用哪个外发中继,因此请到 cPanel → Email Deliverability 获取建议的记录。如果记录中写的是错误的中继,你发出的每一封邮件都会 SPF 验证失败。

DMARC 策略应该从哪一级开始?

从 v=DMARC1; p=none; 加上一个接收报告的地址开始。等报告显示只有非法来源验证失败后,再依次调整为 p=quarantine 和 p=reject。

每小时可以发送多少封邮件?

取决于你的套餐,从 Infinity Hosting 等套餐的每个域名每小时 150 封,到 Premium Hosting — Platinum 的 500 封不等。没有每日限额,另有 25% 的超额缓冲,超出阈值的邮件会进入队列,而不是直接被拒绝。

我可以用 WebGee 邮箱发送电子期刊吗?

不可以。WebGee 的邮件服务不得用于电子邮件营销,发送营销活动邮件会导致账户被封禁。请使用专门的服务,例如 Mailchimp、SendGrid 或 Brevo。

  • SPF
  • DKIM
  • DMARC
  • 邮件送达率
  • cPanel
关于作者WebGee Sr. Support Engineer
在 Google 上将 WebGee 设为首选来源
邮件为什么会进垃圾箱?先排查这几项:SPF、DKIM、DMARC 与发信限制 | WebGee