送达率 · 2026 年 9 月 21 日

退信与投诉:真正损害送达率的是什么

退信是技术性失败,投诉则是信誉杀手。了解如何处理这两类问题,保持发信信誉完好,让邮件顺利进入收件箱。

核心区别

退信是收件服务器拒收邮件造成的技术性失败;投诉则是收件人将您的邮件标记为垃圾邮件的用户行为。高退信率说明名单维护不善,而投诉说明缺乏许可或内容不相关。投诉对信誉的伤害要大得多,因为它直接向 ISP 表明您的内容不受欢迎,会更快导致被列入黑名单,并降低您整个 IP 段的投递率。

理解退信

当邮件无法投递到收件人的邮箱时,就会发生退信。从工程角度看,这是一次投递尝试的失败。退信分为两类:硬退信和软退信。

硬退信

硬退信是永久性失败:邮件地址不存在、域名无效,或收件服务器已永久屏蔽您的 IP。您必须立即停止向这些地址发信。继续向硬退信地址发送邮件,会向 ISP 发出一个重要信号:您在使用陈旧或购买来的名单,而这正是未经请求的群发邮件的典型特征。

硬退信常见的 SMTP 错误码包括:

  • 550:用户未知(User unknown)
  • 554:事务失败(Transaction failed)
  • 550 5.1.1:目标邮箱地址无效(Bad destination mailbox address)

软退信

软退信是暂时性失败:邮箱可能已满,服务器可能暂时宕机,或者邮件大小超出限制。这些并不是立即清除联系人的理由,但反复出现的软退信最终应按硬退信处理。

软退信常见的 SMTP 错误码包括:

  • 421:服务不可用,正在关闭传输通道(Service not available, closing transmission channel)
  • 450:请求的邮件操作未执行:邮箱不可用(Requested mail action not taken: mailbox unavailable)
  • 451:请求的操作已中止:处理时发生本地错误(Requested action aborted: local error in processing)

理解投诉

当用户在邮件客户端中点击“报告垃圾邮件”或“标记为垃圾邮件”时,就产生了一次投诉。与退信不同,这封邮件已经成功投递到邮箱。这里的失败不是技术性的,而是行为层面的。

Gmail 或 Outlook 等 ISP(互联网服务提供商)会跟踪投诉数占总发送量的比例。如果您的投诉率超过一个非常低的阈值(通常低至 0.1%),您的信誉就会下降。这不仅影响您当前的那次活动,还会影响从该 IP 或域名发出的每一封邮件。

送达的层级

务必区分三个不同的概念:服务商受理、投递和收件箱送达。

  1. 服务商受理:收件服务器接受连接和邮件。如果这一步失败,就产生了退信。
  2. 投递:邮件被成功存入收件人的邮件存储。
  3. 收件箱送达:邮件被放入收件箱而不是垃圾邮件文件夹。投诉会直接影响这一阶段。

如果您的投诉率很高,邮件可能仍然“已送达”(被服务器接受),但对所有用户都会被直接归入垃圾邮件文件夹,无论这些用户本人是否投诉过。

用工程手段应对

作为负责事件队列的工程师,您不能依赖手动清理,而是需要一条自动化管道来处理投递事件。

抑制列表

每一套专业的发信系统都需要抑制列表。它是一个存放永远不应再发信的地址的数据库。当您通过 Webhook 收到 bounce 或 complaint 事件时,系统必须立即将该地址加入抑制列表。

如果您使用 SendHQ,这些抑制记录会在 API 层处理,确保即使您的应用逻辑尝试向被抑制的地址发信,系统也会在邮件发出之前将其拦截。

处理 Webhook

您的 Webhook 处理程序大致应该是这样的(Node.js 概念示例):

app.post('/webhooks/email', async (req, res) => { const event = req.body; switch (event.type) { case 'bounce': if (event.detail.category === 'permanent') { await suppressionService.add(event.detail.email, 'hard_bounce'); } break; case 'complaint': await suppressionService.add(event.detail.email, 'spam_complaint'); break; case 'delivered': await trackingService.markAsDelivered(event.detail.messageId); break; } res.sendStatus(200); });

AI 智能体的问题:幂等与审批

当 AI 智能体承担发送邮件的任务时,发生送达率灾难的风险会增加。一个陷入循环的智能体可能会意外地向同一用户发送 1,000 封相同的邮件,引发大量投诉。

幂等键

为防止重复发送,请始终使用幂等键。这样即使智能体因超时而重试请求,邮件也只会发送一次。

人工介入(HITL)

对于发送高风险通信的智能体,请实现审批队列:由智能体生成草稿,但最终的 API 调用必须由人工触发。这可以避免“幻觉垃圾邮件”场景,即智能体向一个大型名单发送不相关的内容,导致投诉率飙升。

基础设施与成本的权衡

选择服务商往往需要在易用性和成本之间权衡。规模扩大后,高发送量下的价格差异非常明显。

根据 Amazon SES 价格页面,SES 按量计费为每 1,000 封邮件 0.10 USD。发送 50,000 封邮件约需 5 USD。相比之下,按 Postmark 的价格,50,000 封邮件约需 66 USD(15 USD 基础费含 10,000 封,超出部分每 1,000 封 1.20 至 1.80 USD)。

其他选择包括:

  • Resend:免费额度为每月 3,000 封邮件(每天上限 100 封)。Pro 套餐为每月 20 USD、含 50,000 封邮件,超出部分每 1,000 封 0.90 USD(Resend 价格)。
  • SendGrid:免费版现已改为 60 天试用;Essentials 起价为每月 19.95 USD(SendGrid 价格)。
  • Mailgun:每月 15 USD、含 10,000 封邮件,超出部分每 1,000 封 1.10 至 1.80 USD(Mailgun 价格)。

虽然 SES 更便宜,但自行管理抑制列表和信誉的运维负担也更重。SendHQ 通过提供基于已验证域名的事务性发信和内置的抑制管理来弥合这一差距,免去您直接配置 AWS 的复杂性。

面向工程师的送达率检查清单

为尽量减少退信和投诉,请遵循以下技术清单:

  • DNS 验证:确保您的 SPF、DKIM 和 DMARC 记录正确。使用 SendHQ DNS 检查工具进行验证。有关设置详情,请参阅我们的DKIM、SPF 和 DMARC 指南。
  • 双重确认订阅(double opt-in):未经明确确认,绝不要将邮箱地址加入列表。这是让投诉率接近零的唯一方法。
  • 一键退订:实现 List-Unsubscribe 邮件头。让用户退订比让其将您标记为垃圾邮件更好。
  • 实时抑制:确保您的 Webhook 处理程序在 5 分钟内更新数据库。
  • 监控:当退信率超过 2% 或投诉率超过 0.1% 时设置告警。

汇总表:退信与投诉

特征 | 退信 | 投诉

原因 | 技术性失败(无效邮箱、邮箱已满) | 用户行为(标记为垃圾邮件)

反映的问题 | 名单维护不善 / 数据陈旧 | 内容不相关 / 未获许可

立即采取的措施 | 立即移除硬退信地址 | 立即移除

对信誉的影响 | 中等(除非非常高) | 严重

主要指标 | 退信率 | 投诉率

目标 | 保持名单干净 | 维护用户信任

总结

退信只是麻烦,投诉却是危机。高退信率告诉 ISP 您做事马虎;高投诉率则告诉 ISP 您是不良发件人。通过自动化抑制逻辑并实施严格的订阅确认流程,您就能保护好自己的发信信誉。

如果您的产品团队需要一种可靠的方式来处理事务性邮件和由智能体驱动的通信,欢迎了解 SendHQ。