Skip to content

Instantly share code, notes, and snippets.

@Tug
Created February 24, 2015 18:24
Show Gist options
  • Save Tug/58c38c0962ce19b953cd to your computer and use it in GitHub Desktop.
Save Tug/58c38c0962ce19b953cd to your computer and use it in GitHub Desktop.
is gmail ?
function is_gmail(email, callback) {
var email_host_regex = /.*@(.+)$/;
var gmail_servers_regex = /(\.google\.com|\.googlemail\.com)$/i;
var m = email_host_regex.exec(email);
if(m && m.length > 1) {
var host = m[1] && m[1].toLowerCase();
if(host == "gmail.com") {
return callback(null, true);
} else {
dns.resolveMx(host, function(err, result) {
if(err || !result || result.length === 0) return callback(err, false);
for(var i=0; i < result.length; i++) {
var record = result[i];
m = gmail_servers_regex.exec(record.exchange);
if(m && m.length > 1) return callback(null, true);
}
return callback(null, false);
});
}
} else {
return callback(null, false);
}
}
function is_yahoo(email, callback) {
var email_host_regex = /.*@(.+)$/;
var yahoo_servers_regex = /(\.yahoodns\.net)$/i;
var m = email_host_regex.exec(email);
if(m && m.length > 1) {
var host = m[1] && m[1].toLowerCase();
if(host.match(/yahoo\.[a-z]{2,3}$/i)) {
return callback(null, true);
} else {
dns.resolveMx(host, function(err, result) {
if(err || !result || result.length === 0) return callback(err, false);
for(var i=0; i < result.length; i++) {
var record = result[i];
m = yahoo_servers_regex.exec(record.exchange);
if(m && m.length > 1) return callback(null, true);
}
return callback(null, false);
});
}
} else {
return callback(null, false);
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment