EmailCheckPro 读懂邮箱注册检测结果的流程示意
本文所述流程的可视化概览。

邮箱注册检测的价值,多半是在最后一步丢掉的——把响应写回表格或 CRM 字段的那一刻。一次检测会返回几种性质完全不同的结果,而把它们压缩成"注册/未注册"一列,扔掉的恰好是那些能告诉你"哪些地址还需要处理"的信息。

这篇文章讲清楚会拿到哪几种结果、每一种允许你得出什么结论,以及团队最常在哪里丢失精度。

已完成的结果是一个时间点上的观测

当检测完成、registeredtrue 时,它的含义是:该账号在检测运行的那一刻存在于其服务商处。这个陈述很窄,但很有用,值得把它不包含的东西说清楚。

它不承诺邮件能进收件箱。可送达性取决于你的发信信誉、邮件内容和服务商侧的过滤策略,这些都不在一次注册检测的观测范围内。它也不是身份或归属权的证明:地址存在,并不说明谁在控制它。它同样不构成联系许可——那属于你自己的记录和外联的合法性依据。

最后,它是有时效的。账号可能在检测之后被关闭。所以对一份重要的名单,真正该问的不是"这个结果对不对",而是"这个结果多久了,我的流程能容忍多旧"。

无法判定不是"委婉的未注册"

最常见的错误,是把"无法判定"写成 registered: false

catch-all 域名是最典型的情形。这类域名对任何本地部分的邮件都照单全收,服务商的回答无法区分一个真实存在的账号和一个从未创建过的账号。诚实的结果就是"无法判定",检测也正是这样返回的——而不是去猜一个服务商从未确认过的注册状态。

如果你把它写进"未注册"列,会同时发生两件事:你屏蔽掉了一批可能完全正常的地址,而且再也没机会回头处理它们,因为你的数据里已经不存在"这个问题当时没有答案"这条记录了。把"无法判定"保留成一个独立取值。

检测失败与输入非法,描述的是你的输入和这一次运行

还有两种结果,需要彼此区分,也需要和上面两种区分。

"输入非法"意味着这个输入根本不能被当作邮箱地址接受。这是你名单本身的数据质量问题,修复要发生在检测之前:先修数据源,再重新提交。

"检测失败"意味着这次检测没有跑完。地址本身可能完全没问题,只是这一次没有产出答案。这些行才是该重试的;而重试它们,和重新检测一个已经过期的"已完成"结果,是两件不同的事。

把"已完成、无法判定、检测失败、输入非法"这四个桶保持成四个独立取值,整件事的纪律就在这里。代价是多一列,换来的是一份可以直接执行的名单,而不是一份只能从头再检一遍的名单。

按名单规模选择接口

这套结果模型在所有入口上都一致,所以选择只关乎批量大小和你愿意怎么等。

单个地址走 POST /api/v1/check,直接返回。最多 100 个地址可以用 POST /api/v1/batch-check 在一次同步请求里完成,适合表单或记录详情页里的交互式使用。更大的名单应该走异步文件任务 POST /api/v1/bulk-tasks,单个任务接受 1,000 到 100,000 个地址,返回可下载的结果,而不是把请求一直挂住。

头像信号是另一款产品,覆盖范围是有文档约定的几个家族——Gmail、Yandex 和 Mail.ru。公开头像是否存在,只是联系记录上的一个补充信号;和注册状态一样,它不是身份验证,不是归属权证明,也不构成复用该图片的许可。

参考来源