You can check their MX records to see if they are hosted by a googlemail server.
This method will return true if it finds a googlemail server in the domain's mx records. It uses google's dns server (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")
look at http://ruby-doc.org/stdlib-1.9.2/libdoc/resolv/rdoc/Resolv.html