检查电子邮件地址是否基于Google

时间:2015-10-30 05:36:01

标签: ruby-on-rails ruby

我正在处理带有用户电子邮件的rails应用程序,并检查如果用户的电子邮件ID是基于谷歌的,那么它会重定向到谷歌登录,否则它会重定向到应用程序登录页面。

示例:

1)如果是常规的gmail电子邮件地址,如(example@gmail.com)

2)如果谷歌应用程序的电子邮件地址如(example@company.com,其中company.com使用谷歌应用程序)

3)如果它使用任何其他电子邮件地址,如(example@yahoo.com或example@hotmail.com)

那么,我如何检查用户邮件是否是基于gmail的,以满足我的第一个和第一个第二个条件。

谢谢:)

1 个答案:

答案 0 :(得分:4)

对于第一个和最后一个点,您可以使用简单的正则表达式并检查domain=="google"domain=="yahoo"

email = 'tired@mydomain.com'
domain = email.sub(/.+@([^.]+).+/, '\1')

上面的行只会提取mydomain。您可以稍后添加条件以检查是否是gmail / yahoo。

关于第二点,你可以dig发送电子邮件' MX记录(你可以检查如何在ruby中完成)。这是流程:

$> dig domainname.com mx

如果他们与Google合作,您就会知道。

domainname.com.            2198    IN      MX      10 ASPMX.L.GOOGLE.com.
domainname.com.            2198    IN      MX      20 ALT1.ASPMX.L.GOOGLE.com.
domainname.com.            2198    IN      MX      20 ALT2.ASPMX.L.GOOGLE.com.
domainname.com.            2198    IN      MX      30 ASPMX2.GOOGLEMAIL.com.
domainname.com.            2198    IN      MX      30 ASPMX3.GOOGLEMAIL.com.
domainname.com.            2198    IN      MX      30 ASPMX4.GOOGLEMAIL.com.
domainname.com.            2198    IN      MX      30 ASPMX5.GOOGLEMAIL.com.