2015-10-30 129 views
2

我正在接受用戶電子郵件的rails應用程序,並檢查如果用戶的電子郵件ID是基於谷歌,那麼它重定向到谷歌登錄,否則它重定向到應用程序登錄頁面。檢查一個電子郵件地址是否基於谷歌

例如:

1)如果它像普通的Gmail的電子郵件地址([email protected]

2),如果它的Google應用基於電子郵件地址等([email protected]其中company.com使用谷歌應用程序)

3)如果使用像([email protected][email protected]

因此,任何其他電子郵件地址,我怎麼能檢查用戶郵件的Gmail基於該履行我的第一個&第二個條件。

謝謝:)

回答

4

對於第一個和最後一個點,你可以使用一個簡單的正則表達式,並檢查是否domain=="google"domain=="yahoo"

email = '[email protected]' 
domain = email.sub(/[email protected]([^.]+).+/, '\1') 

上線將只提取mydomain。您可以稍後添加條件以檢查是否爲gmail/yahoo。

至於第二點,你可以電子郵件的MX記錄(你可以檢查如何做到這一點在紅寶石)。這裏是流程:

$> dig domainname.com mx 

如果他們與谷歌,你會知道它。

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. 
+0

''[email protected]'[/(?<= @)\ w +(?= \。)/]#⇒'mydomain''。全球(爲什麼是全球?)子在這裏是多餘的。 – mudasobwa

+0

@mudasobwa你是對的。誤加了它。我已經做了必要的改變。 –

+0

我的變體在語義上更加正確。 – mudasobwa

相關問題