您可以检查他们的 MX 记录以查看它们是否由 googlemail 服务器托管。
如果在域的 mx 记录中找到 googlemail 服务器,此方法将返回 true。它使用谷歌的 dns 服务器 (8.8.8.8)
require 'resolv'
def isGmailAddress?(address)
domain = address.split("@").last
Resolv::DNS.open({:nameserver=>["8.8.8.8"]}) do |r|
mx = r.getresources(domain,Resolv::DNS::Resource::IN::MX)
if mx.any? {|server| server.exchange.to_s.include? "googlemail" or server.exchange.to_s.include? "gmail-smtp-in.l.google.com"} then
return true
end
return false
end
end
p isGmailAddress?("emailaddress@gmail.com")
看看http://ruby-doc.org/stdlib-1.9.2/libdoc/resolv/rdoc/Resolv.html