如何在Gmail上以编程方式检查存在的电子邮件地址?

时间:2017-03-29 21:37:02

标签: email gmail

如果你谷歌"如何查看存在的电子邮件地址"问题,你会发现,基本上,只有使用SMTP协议的解决方案才是不可靠的。我尝试了这种方法,发现Gmail SMTP服务器说"是的,这封电子邮件是在这里注册的"在我询问的每个电子邮件地址上。我怀疑这种策略是在大多数流行的电子邮件服务器上使用的。

1 个答案:

答案 0 :(得分:3)

我想要分享的方法用于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

响应标头

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

请求标头

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

查询字符串参数

resource=SignUp

请求有效负载

{"input01":{"Input":"GmailAddress","GmailAddress":"andy.v.che","FirstName":"","LastName":""},"Locale":"en-GB"}

响应

{"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"}

正如您所看到的,如果此类电子邮件确实存在,则响应中会显示"Valid":"false",如果不存在,则会显示(剧透)"Valid":"true"

限制查询

来自Gmail的人确实理解垃圾邮件发送者可以使用此方法查找现有的电子邮件。这就是他们不允许使用它进行大规模扫描的原因。我正在进行一段时间的扫描,大约每天只扫描200封电子邮件。

更多详情

我每分钟扫描一封电子邮件,如果我收到回复“否,此电子邮件不存在”,我还询问我自己的电子邮件是否存在。如果我收到“否,您的电子邮件也不存在”答案,我可以清楚地了解到我的IP地址禁止使用Gmail服务器。然后,我休息了45分钟以取消禁止,然后继续循环。每天扫描的电子邮件数量在200左右波动。

您可能会问:您是否像垃圾邮件发送者那样进行了扫描,您的扫描目的是什么?

我的回答是:我试图找到一个不清楚地写下他的电子邮件的人(草书不好)。没有其他选择可以找到他。

他的书面邮件中​​有3封不清楚的信件,但很明显它的域名是gmail.com,所以我想出了一种方法来查找Gmail上存在的电子邮件地址,生成一个列表所有可能的电子邮件(尝试用所有可能的英文字母替换未知符号)并检查它们是否存在。然后,发信给所有现有的。

this问题讨论了发布此信息的权利。我理解这篇文章对于垃圾邮件发送者非常有用,所以为了安全起见,我可以将其部分删除甚至完全删除。