ARTICLE · INTELLIGENCE

战地情报 · 详情页

来自尧图项目组的一线实战观察与深度解析

不发一封邮件,就能查邮箱是否存在:check-if-email-exists 完整指南

不发一封邮件,就能查邮箱是否存在:check-if-email-exists 完整指南

不发一封邮件,就能查邮箱是否存在:check-if-email-exists 完整指南

【免费下载链接】check-if-email-existsCheck if an email address exists without sending any email, written in Rust. Comes with a ⚙️ HTTP backend.项目地址: https://gitcode.com/gh_mirrors/ch/check-if-email-exists

用户在注册表单里填了一个邮箱,你怎么知道它真实存在?传统做法是发一封验证邮件、等用户点回来,流程慢,而且很多人根本不会点。check-if-email-exists 是一个用 Rust 写的邮箱验证工具:它不发送任何邮件,直接连接邮箱的 SMTP 服务器探测,几秒内就能告诉你这个账号是否存在。

一句话说清它的价值

它对邮箱地址做格式、域名 MX 记录、SMTP 连接、信箱状态一连串检查,然后返回结构化的 JSON 结果。和发验证邮件被动等待不同,它是主动探测,结果立即返回,对方也不会收到任何邮件。

它是怎么工作的

过程像一个侦探上门查访,一共四步:

  • 语法检查:先判断地址格式是否合法,顺便标记一次性邮箱、角色邮箱(如 info@)
  • MX 记录查询:确认域名有有效的邮件交换记录,知道该找哪台服务器收信
  • SMTP 连接探测:直连该邮箱服务器,用 RCPT TO 命令问一句"这个账号在不在"
  • 按响应判定:服务器返回 550 通常意味着账号无效;域名是 catch-all 的话,结果会诚实地标记为 unknown

![check-if-email-exists 邮箱验证后端架构:HTTP 服务、RabbitMQ 队列与 worker 分工](https://raw.gitcode.com/gh_mirrors/ch/check-if-email-exists/raw/14e48ba733473869f5c2234698c7c3b775e975b8/docs/.gitbook/assets/Screenshot 2024-11-30 at 15.33.27.png?utm_source=gitcode_repo_files)

验证量大的时候,后端会把请求放进 RabbitMQ 队列,由多个 worker 并行处理,结果落库后可以随时按任务批量取回,适合做邮箱验证批量场景。

5 分钟快速上手

最轻量的方式是 Docker 拉起官方后端镜像:

docker run -p 8080:8080 reacherhq/backend:latest

启动后发一个 POST 请求:

curl -X POST http://localhost:8080/v0/check_email \ -H "Content-Type: application/json" \ -d '{"to_email": "someone@gmail.com"}'

返回的 JSON 里,is_reachable字段取safe、risky、invalid、unknown四个值之一。不想部署后端的话,也可以下载 CLI 二进制,在本机直接查。如果你的项目本身就是 Rust,在 Cargo.toml 里加一个check-if-email-exists依赖就能在代码里调用。

它适合谁

  • 清理邮件列表的人:批量营销邮件发出前,先筛掉无效地址,退信率能明显降下来
  • 注册系统开发者:用户填邮箱的瞬间就能验证是否真实可用,省掉发验证邮件的等待
  • 数据清洗场景:对数据库里的邮箱字段做一次可达性体检,顺便识别一次性邮箱

它做不到什么

使用前要清楚两点:

  1. catch-all 域名(接受任意信箱的域名)无法区分具体哪个账号存在,此时你得到的是unknown,而不是错误的"存在"
  2. 验证不等于必达:部分服务商对无效账号不返回明确的 550 错误码,结果会偏保守;另外自建后端需要服务器出网开放 25 端口

它是开源项目,部署与配置细节见 后端文档。先跑一个 Docker 镜像验证一个邮箱,感受一下返回结果,再决定要不要接入自己的系统:git clone https://gitcode.com/gh_mirrors/ch/check-if-email-exists

【免费下载链接】check-if-email-existsCheck if an email address exists without sending any email, written in Rust. Comes with a ⚙️ HTTP backend.项目地址: https://gitcode.com/gh_mirrors/ch/check-if-email-exists

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

RELATED READING

延伸阅读

更多一线实战笔记与深度复盘,助您持续精进