【问题标题】:Checking that an email address is google based or not检查电子邮件地址是否基于谷歌
【发布时间】:2015-10-30 05:36:00
【问题描述】:

我正在开发接收用户电子邮件并检查用户电子邮件 ID 是否基于谷歌的 Rails 应用程序,然后它重定向到谷歌登录,否则它重定向到应用程序登录页面。

示例:

1) 如果是普通的 gmail 电子邮件地址,例如 (example@gmail.com)

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

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

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

谢谢你:)

【问题讨论】:

    标签: ruby-on-rails ruby


    【解决方案1】:

    对于第一点和最后一点,您可以使用简单的正则表达式并检查是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.
    

    【讨论】:

    • 'tired@mydomain.com'[/(?<=@)\w+(?=\.)/] #⇒ 'mydomain'。全局(为什么是全局?)子在这里是多余的。
    • @mudasobwa 你是对的。错误地添加了它。我已经进行了必要的更改。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-06-08
    • 1970-01-01
    • 2016-04-06
    • 2016-08-20
    • 2012-09-09
    • 2011-08-17
    • 2011-10-25
    相关资源
    最近更新 更多