如果您在谷歌上搜索“如何检查电子邮件地址是否存在”问题,您会发现基本上只有使用 SMTP 协议的解决方案是不可靠的。我尝试了这种方法,发现 Gmail SMTP 服务器在我询问的每个电子邮件地址上都说“是的,此电子邮件已在此处注册”。我怀疑大多数流行的电子邮件服务器都使用这种策略。
我想分享的方法是在 Gmail 注册表中使用的,以确保您将注册一个全新的电子邮件。它使用 AJAX 请求询问 Gmail 服务器是否存在给定的电子邮件
Request URL:https://accounts.google.com/InputValidator?resource=SignUp
Request Method:POST
Status Code:200
Remote Address:173.194.222.84:443
Run Code Online (Sandbox Code Playgroud)
alt-svc:quic=":443"; ma=2592000; v="37,36,35"
cache-control:private, max-age=0
content-encoding:gzip
content-type:application/json; charset=utf-8
date:Wed, 29 Mar 2017 21:06:06 GMT
expires:Wed, 29 Mar 2017 21:06:06 GMT
server:GSE
set-cookie:GAPS=1:<redacted>;Path=/;Expires=Fri, 29-Mar-2019 21:06:06 GMT;Secure;HttpOnly;Priority=HIGH
status:200
strict-transport-security:max-age=10893354; includeSubDomains
x-content-type-options:nosniff
x-frame-options:DENY
x-xss-protection:1; mode=block
Run Code Online (Sandbox Code Playgroud)
Provisional headers are shown
Content-type:application/json
Origin:https://accounts.google.com
Referer:https://accounts.google.com/SignUp?hl=en-GB
User-Agent:Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36
Run Code Online (Sandbox Code Playgroud)
resource=SignUp
Run Code Online (Sandbox Code Playgroud)
{"input01":{"Input":"GmailAddress","GmailAddress":"andy.v.che","FirstName":"","LastName":""},"Locale":"en-GB"}
Run Code Online (Sandbox Code Playgroud)
{"input01":{"Valid":"false","ErrorMessage":"Someone already has that username. Note that we ignore full stops and capitalisation in usernames. Try another?","Errors":{"GmailAddress":"Someone already has that username. Note that we ignore full stops and capitalisation in usernames. Try another?"},"ErrorData":["andyvche959"]},"Locale":"en_GB"}
Run Code Online (Sandbox Code Playgroud)
如您所见,"Valid":"false"如果确实存在这样的电子邮件,则响应中有,如果不存在(剧透)"Valid":"true"。
来自 Gmail 的人确实了解垃圾邮件发送者可以使用这种方法来查找现有电子邮件。这就是为什么他们不允许使用它进行大规模扫描。我做了一段时间这样的扫描,每天大约只能扫描 200 封电子邮件。
我每分钟扫描 1 封电子邮件,如果收到回复“不,这封电子邮件不存在”,我还会询问我自己的电子邮件是否存在。如果我得到“不,你的电子邮件也不存在”的回答,我可以清楚地理解我的 IP 地址被禁止使用 Gmail 服务器。然后,我休息了 45 分钟以解除禁令,然后继续循环。每天扫描的 af 电子邮件数量在 200 左右波动。
您可能会问:您像垃圾邮件发送者那样进行了扫描,那么您进行扫描的目的是什么?
我的回答是:我试图找到一个写电子邮件不清楚的人(糟糕的草书)。没有其他办法可以找到他。
他写的电子邮件中有 3 个不清楚的字母,但很明显它的域是 gmail.com,所以我想出了一个想法,找到一种方法来检查 Gmail 上是否存在电子邮件地址,生成所有可能的电子邮件列表(尝试用所有可能的英文字母替换未知符号)并检查它们是否存在。然后,向所有现有的人发送一封信。
此问题中讨论了此信息的发布权。我知道这篇文章对垃圾邮件发送者非常有用,因此为了安全起见,我愿意部分甚至完全删除它。