如何检查电子邮件地址是否属于Gmail

如何检查电子邮件地址是否属于Gmail,gmail,contacts,google-api,Gmail,Contacts,Google Api,我正在创建一个函数,它使用Google的API从一个人的gmail帐户导入联系人。然而,我知道许多企业注册谷歌是为了拥有一个更专业的域名(例如,一些_name@bislr.com)但仍然属于Gmail 有办法检查一下吗 选项1 如果您在bislr.com上对MX记录进行DNS查找,则会得到以下结果: $ host -t mx bislr.com bislr.com mail is handled by 10 aspmx.l.google.com. bislr.com mail is handle

我正在创建一个函数,它使用Google的API从一个人的gmail帐户导入联系人。然而,我知道许多企业注册谷歌是为了拥有一个更专业的域名(例如,一些_name@bislr.com)但仍然属于Gmail


有办法检查一下吗

选项1

如果您在bislr.com上对MX记录进行DNS查找,则会得到以下结果:

$ host -t mx bislr.com
bislr.com mail is handled by 10 aspmx.l.google.com.
bislr.com mail is handled by 20 alt1.aspmx.l.google.com.
bislr.com mail is handled by 20 alt2.aspmx.l.google.com.
bislr.com mail is handled by 30 aspmx2.googlemail.com.
bislr.com mail is handled by 30 aspmx3.googlemail.com.
bislr.com mail is handled by 30 aspmx4.googlemail.com.
bislr.com mail is handled by 30 aspmx5.googlemail.com.
任何人托管他们的电子邮件谷歌应用程序将有MX记录非常类似于这些。您可以使用任何常见的DNS机制进行MX查找,并测试Google最推荐的邮件服务器(aspmx.l.Google.com、alt1.aspmx.l.Google.com和alt2.aspmx.l.Google.com)的MX记录,或者查找此列表中的任何/所有服务器

这不会向您显示任何使用外部转发/过滤服务的人,但它适用于所有常见情况

选项2

您可以连接到邮件服务器,以验证它是否接受发送到特定地址的邮件。使用此功能,我们可以连接到asmpx.l.google.com,并询问其地址是否为有效的google Mail帐户

如果您连接到aspmx.l.google.com:25并发送此字符串(根据需要替换电子邮件地址):

直升机 邮寄地址: RCPT至: 谷歌的邮件服务器将以smtp状态代码响应,如果是有效地址,则可能是以
2502.1.5ok
开头的一行。这是一种比简单地检查DNS记录更干净、更可靠的方法,只要你没有通过使用它向gmail发送垃圾邮件而将检查IP列入黑名单,这种方法就应该有效


你不能肯定

@lunixbochs描述的MX记录检查涵盖了大多数情况,但许多公司将使用具有不同域名的Postini。他们还可能使用任何数量的其他邮件预处理引擎来隐藏aspmx记录

另一种检查方法是查看他们是否有活动域名:

curl | grep“不使用谷歌应用程序的域”


使用您选择的语言/库而不是curl来获取url…

我不确定为什么有人会在gmail(谷歌的邮件过滤引擎)上使用postini(谷歌的邮件过滤引擎)。我用更可靠的非侵入式选项更新了我的。如果你删除他们的错误页面来扫描有效的域名,你很可能会受到谷歌的防火墙攻击。很多企业都是这样做的,最初的问题特别提到了谷歌的应用程序。你是否会得到“自动查询”页面显然取决于你的流量水平;对于大多数情况,这实际上是可以的,除非你每天扫描成千上万个域。你的选项2更好,但要求你有一个已知的有效电子邮件地址-这在描述的场景中是可以的,但在其他场景中可能不是…反复抓取谷歌登录页面几乎肯定会调查和阻止你的使用,并且不应该在生产系统中依赖我用另一个选项更新了我的答案,可能更准确。
HELO
MAIL FROM:<ping@mydomain.com>
RCPT TO:<user@theirdomain.com>