我正在处理带有用户电子邮件的rails应用程序,并检查如果用户的电子邮件ID是基于谷歌的,那么它会重定向到谷歌登录,否则它会重定向到应用程序登录页面。
示例:
1)如果是常规的gmail电子邮件地址,如(example@gmail.com)
2)如果谷歌应用程序的电子邮件地址如(example@company.com,其中company.com使用谷歌应用程序)
3)如果它使用任何其他电子邮件地址,如(example@yahoo.com或example@hotmail.com)
那么,我如何检查用户邮件是否是基于gmail的,以满足我的第一个和第一个第二个条件。
谢谢:)
答案 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.