不需要发任何邮件就能验证某个邮箱地址是不是真的存在

check-if-email-exists
这是一个用 Rust 写的开源工具,核心能力就一个——验证某个邮箱地址是不是真的存在,整个过程完全不需要给对方发任何邮件,既省事儿又不会打扰到别人。
Github地址
https://github.com/reacherhq/check-if-email-exists

项目功能特性
不是简单告诉你"能通"或者"不能通"。它会从好几个维度去检查一个邮箱:
基础层面,先看邮箱格式对不对,比如 @ 前面后面有没有瞎写,域名拼写有没有问题。然后查 DNS,看这家邮箱服务商有没有正确的 MX 记录,也就是邮件交换记录,没有这玩意儿的话邮件根本送不到。
深度验证,它会尝试跟对方的 SMTP 服务器"握手",模拟发邮件的前几步流程,到最后一刻停住不真的发出去。通过这个操作能摸清楚不少信息:服务器能不能连上、这个邮箱是不是" catch-all "(啥地址都收)、邮箱是不是已经被服务商禁用了、甚至对方收件箱是不是已经塞满了。
额外情报,还能识别是不是一次性邮箱(那种临时注册用完就扔的)、是不是角色账号(比如 admin@、support@ 这类公用邮箱)、有没有在数据泄露事件里出现过(调 Have I Been Pwned 的数据),以及能不能抓到对应的 Gravatar 头像链接。
最后会给出一个综合结论,分成四档:safe(放心发)、risky(有点悬)、invalid(肯定不行)、unknown(判断不了)。
使用方式
项目提供了三条路,看你想怎么用:
最省心的——Docker 跑 HTTP 服务
一条命令搞定:
docker run -p 8080:8080 reacherhq/backend:latest然后往 POST http://localhost:8080/v0/check_email 扔个 JSON 就行,支持配 SOCKS5 代理。适合想直接集成到自己系统里的团队。注意:服务器得开 25 端口 outbound,不然 SMTP 握手玩不转。
最轻便的——下载 CLI 工具
去 releases 页面抓对应平台的二进制文件,本地直接跑。不依赖任何后端,你的机器就是验证节点。适合偶尔查几个邮箱,或者不想搭服务的个人用户。
最灵活的——Rust 项目里直接调用
Cargo.toml 里加一行依赖,代码里用 check_email() 异步函数,返回的结果是个结构体,所有字段都能编程访问。适合已经在用 Rust 生态,想把邮箱验证能力嵌进自己业务逻辑的情况。