digitalhydra
2/22/2016 - 2:15 PM

Check if an Email address is Gmail or Google Apps for your domain

Check if an Email address is Gmail or Google Apps for your domain

getmxrr — Get MX records corresponding to a given Internet host name

email_host_regex = re.compile(".*@(.*)$")
gmail_servers_regex = re.compile("(.google.com.|.googlemail.com.)$", re.IGNORECASE)

def is_gmail(email):
        """ Returns True if the supplied Email address is a @gmail.com Email or is a Google Apps for your domain - hosted Gmail address
Checks are performed by checking the DNS MX records """
        m = email_host_regex.findall(email)
        if m and len(m) > 0:
                host = m[0]
                if host and host != '':
                        host = host.lower()

                if host == "gmail.com":
                        return True
                else:
                        answers = dns.resolver.query(host, 'MX')
                        for rdata in answers:
                                m = gmail_servers_regex.findall(str(rdata.exchange))
                                if m and len(m) > 0:
                                        return True

        return False

print is_gmail("xxx@gmail.com")