Skip to content

Instantly share code, notes, and snippets.

@19h
Created February 13, 2014 20:08
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save 19h/8982838 to your computer and use it in GitHub Desktop.
Save 19h/8982838 to your computer and use it in GitHub Desktop.
Invalid Mail Detection for Node.js. Looksup against static list, then calls the mogelmail.de API and finally requests the target MX server to obtain the state of the mail address.
var dns = require("dns"),
net = require("net");
var nops = {};
var fs = require("fs"),
http = require("http");
// read trash mail domains
fs.readFileSync("./verifymx_trashmail")
.toString().split("\n")
.forEach(function (v) {
nops [v] = 1
})
var agent = new http.Agent();
var lookupEmail = function (e, cb) {
return http.request({
hostname: "www.mogelmail.de",
port: 80,
path: "/q/" + e,
agent: agent
}, function (s) {
s.on("data", function (d) {
cb(+String(d) === 0)
}), s.on("error", function () {
cb(true)
})
}).end()
}
module.exports = function(email, callback, timeout) {
if (!callback) return false;
timeout = timeout || 5000;
var domain = email.split("@")[1];
// test integrity
if (!/^(([^<>()[\]\\.,;:\s@\"]+(\.[^<>()[\]\\.,;:\s@\"]+)*)|(\".+\"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/.test(email))
return callback(null, false);
if (nops[domain])
return callback(null, false);
return lookupEmail(domain, function (exists) {
if (exists)
return dns.resolveMx(domain, function(err, addresses) {
if (err || !addresses.length)
return callback(err, false);
var conn = net.createConnection(25, addresses[0].exchange);
var commands = ["helo " + addresses[0].exchange, "mail from: <" + email + ">", "rcpt to: <" + email + ">"];
var i = 0;
conn.setEncoding("ascii");
conn.setTimeout(timeout);
conn.on("error", function() {
callback(err, false),
conn.removeAllListeners();
});
conn.on("connect", function() {
conn.on("prompt", function() {
if (i < 3) {
conn.write(commands[i]);
conn.write("\n");
i++;
} else {
callback(err, true);
conn.removeAllListeners();
}
});
conn.on("timeout", function() {
callback(err, false, true);
conn.removeAllListeners();
});
conn.on("data", function(data) {
if (~data.indexOf("220") || ~data.indexOf("250")) {
conn.emit("prompt");
} else if (~data.indexOf("550")) {
callback(err, false);
conn.removeAllListeners();
} else {
callback(err, false, true);
conn.removeAllListeners();
}
});
});
});
else
return callback(null, false);
})
};
/*
Example usage:
module.exports("kenan@trashmail.de", console.log)
// will yield [null, false]
module.exports("kenan@sly.mn", console.log)
// will yield [null, true]
*/
0815.ru
0clickemail.com
10minutemail.com
12houremail.com
12minutemail.com
163.com
1800newcareer.co.cc
1pad.de
21cn.com
2day.servebeer.com
2prong.com
3126.com
3d-painting.com
8127ep.com
BeefMilk.com
DingBone.com
FudgeRub.com
LookUgly.com
SendSpamHere.com
SmellFear.com
SpamHerePlease.com
SpamThisPlease.com
TempEMail.net
a.blogdns.com
adresseemailtemporaire.com
afrobacon.com
agedmail.com
akapost.com
akerd.com
ama-trade.de
ama-trans.de
ano-mail.net
anon-mail.de
anonbox.net
anonmails.de
anonymbox.com
anonymhost.org
anonymmail.org
anonymousmail.de
anonymousspeech.com
anonymservices.com.pa
anonymservices.org
antichef.net
antireg.ru
antispam.de
antispam24.de
antispammail.de
armyspy.com
asdasd.ru
b2cmail.de
bananenstaat.com
bangbus.de
beefmilk.com
beispiel.com
beispiel.de
beispiel.net
beispiel.org
binkmail.com
bio-muesli.info
bio-muesli.net
bka.to
blackmarket.to
bobmail.info
bodhi.lawlita.com
bofthew.com
bootybay.de
breakthru.com
brennendesreich.de
broadbandninja.com
bsnow.net
bspamfree.org
buffemail.com
bugmenever.com
bugmenot.com
bumpymail.com
bund.us
byom.de
cam4you.cc
card.zp.ua
casema.org
cellurl.com
centermail.com
centermail.net
chammy.info
cheatmail.de
checknew.pw
chogmail.com
chongsoft.cn
chongsoft.org
cndwa.cn
consumerriot.com
cool.fr.nf
courriel.fr.nf
curveball.zone-salting.info
cust.in
cuvox.de
cysel.zzn.com
d-painting.comip.us
dayrep.com
dbunker.com
ddl.cx
deadaddress.com
dealja.com
delikkt.de
despam.it
despammed.com
devnullmail.com
dingbone.com
discardmail.com
discardmail.de
disposeamail.com
dispostable.com
dodgeit.com
dodgit.com
doerre.com
dontreg.com
dontsendmespam.de
dotgeit.com
dotgit.com
dotman.de
drdrb.com
dropcake.de
dudmail.com
dump-email.info
dumpmail.de
duskmail.com
dyndns.com
dyndns.org
e-mails.nu
e-postkasten.com
e-postkasten.de
e-postkasten.eu
e-postkasten.info
e4ward.com
easytrashmail.com
edv.to
einfach.to
einmalmail.de
einrot.com
eintagsmail.de
emailalias.com
emaildienst.de
emailgo.de
emailias.com
emaillime.com
emailsensei.com
emailtemporanea.com
emailtemporanea.net
emailthe.net
ep.com
ero-tube.org
europeanmail.org
example.com
example.de
example.net
example.org
express.net.ua
eyepaste.com
fakedemail.com
fakeinbox.com
fakeinformation.com
fakemail.fr
fakemailgenerator.com
fansworldwide.de
fastermail.com
film-blog.biz
filzmail.com
fishfuse.com
fivemail.de
flitafir.de
fly-ts.de
flyspam.com
forgetably.com
fr33mail.info
frapmail.com
fromru.com
front.ru
front14.org
fuckingduh.com
fudgerub.com
fyii.de
garbagemail.org
garliclife.com
garliclife.comtags.com
gaudiumetspes.happyforever.com
gehensiemirnichtaufdensack.de
geschenkt.biz
geschent.biz
getairmail.com
getmails.eu
getonemail.com
ghosttexter.de
giantmail.de
gimme.wa.rez.se
gishpuppy.com
gmail.com
go-panama.com
golfilla.info
gomail.in
goodmails.de
google.com
google.de
gorillaswithdirtyarmpits.com
great-host.in
grr.la
guerillamail.org
guerrillamail.biz
guerrillamail.com
guerrillamail.de
guerrillamail.info
guerrillamail.net
guerrillamail.org
guerrillamailblock.com
gustr.com
gvu.cc
haltospam.com
happymail.me
happynight.com
hardwarezone.com
hat-geld.de
hidemail.de
hidemyass.com
hmamail.com
hochsitze.com
hotbox.ru
houremail.com
hulapla.de
humaility.com
hush.ai
hush.com
hushmail.com
ieatspam.eu
ieatspam.info
ieh-mail.de
ignoremail.com
iheartspam.org
image-space.biz
imails.info
inbox.si
inboxed.im
inboxed.pw
incognitomail.com
incognitomail.net
incognitomail.org
infocom.zp.ua
instant-mail.de
intimail.co.cc
ip6.li
irish2me.com
irishspringrealty.com
is.af
ivym.de
jetable.com
jetable.fr.nf
jetable.net
jetable.org
jnxjn.com
jourrapide.com
junk.to
kaktusmail.de
kasmail.com
keepmymail.com
kinglibrary.net
klzlk.com
kostenlosemailadresse.de
koszmail.pl
krovatka.net
kulturbetrieb.info
kurzepost.de
lags.us
land.ru
lawlita.com
leeching.in
less.b0ne.com
less.ns0.it
letthemeatspam.com
lhsdv.com
lifebyfood.com
link2mail.net
linuxmail.so
live.com
llogin.ru
localhost
localhost.com
localhost.localdomain
localhost.net
localhost.org
lolfreak.net
lookugly.com
losemymail.com
lowiq.linux-board.com
lr78.com
luckymail.org
lxmidr.com
m21.cc
m4ilweb.info
mac.hush.com
mail.chiccosite.de
mail.com
mail.htl22.at
mail.misterpinball.de
mail.ru
mail.svenz.eu
mail.zp.ua
mail15.com
mail1a.de
mail21.cc
mail333.com
mail4trash.com
mailbiz.biz
mailcatch.com
mailde.de
mailde.info
maildrop.cc
maileater.com
maileimer.de
mailexpire.com
mailfish.de
mailforspam.com
mailin8r.com
mailinater.com
mailinator.com
mailinator.net
mailinator2.com
mailismagic.com
mailita.tk
mailme24.com
mailmetrash.com
mailmoat.com
mailms.com
mailnesia.com
mailnull.com
mailorg.org
mailscrap.com
mailseal.de
mailshell.com
mailtemp.net
mailtome.de
mailtothis.com
mailtrash.net
mailtv.net
mailtv.tv
makemetheking.com
malahov.de
marsmail.de
marsmail.eu
mbx.cc
meaning.less.b0ne.com
mega.zik.dj
meltmail.com
messagebeamer.de
ministry-of-silly-walks.de
mintemail.com
minutemail.com
minutemail.net
minuten-mail.de
minutenmail.eu
miquosoft.com
misterpinball.de
moburl.com
moncourrier.fr.nf
monemail.fr.nf
monmail.fr.nf
monumentmail.com
mp3city.at
mt2009.com
mt2014.com
muffsluts.com
mufmail.com
mx.de
mx.dynalias.org
mx0.gotdns.com
mx0.wwwnew.eu
my-trashmail.com
my10minutemail.com
myTrashMail.com
mycard.net.ua
mymail-in.net
mypartyclip.de
mysamp.de
mytempmail.com
mytrashmail.com
nabuma.com
nepwk.com
nervmich.net
nervtmich.net
netmails.net
netzidiot.de
nevermail.de
no-spam.ws
nobugmail.com
nobuma.com
noclickemail.com
nodns.org
nomail.pw
nomail.xl.cx
nomail2me.com
nospam.ze.tc
nospam4.us
nospamfor.us
nospammail.net
nospamthanks.info
notmailinator.com
nowmymail.com
nurfuerspam.de
nwldx.com
objectmail.com
obobbo.com
odnorazovoe.ru
offshore-host.org
offshore-server.org
ohaaa.de
oleco.net
omail.pro
oneoffemail.com
oneoffmail.com
onlatedotcom.info
open.brainonfire.net
openqmaild.org
otherinbox.com
owlpic.com
pad.de
pc136.com
piratenvz.net
piratenvz.org
pisem.net
pjjkp.com
plexolan.de
pochta.ru
pochtamt.ru
point.less.b0ne.com
politikerclub.de
polizei.bz
pookmail.com
pop3.ru
powered.name
privacy.net
privacybox.net
privatdemail.net
privy-mail.de
privymail.de
prong.com
proxymail.eu
prtnx.com
punkass.com
put2.net
putthisInyourspamdatabase.com
pyramidspel.com
qq.com
quickinbox.com
rambler.ru
rbcmail.ru
rcpt.at
realcambio.com
reallymymail.com
realtyalerts.ca
receiveee.com
recode.me
rhcf.com
rhyta.com
rmqkr.net
rppkn.com
rtrtr.com
s0ny.net
safe-mail.com
safersignup.de
safetymail.info
safetypost.de
sandelf.de
sapya.com
schafmail.de
schmeissweg.tk
schrott-email.de
secmail.pw
secretemail.de
sector2.org
secure-email.org
secure-mail.biz
secure-mail.cc
senseless-entertainment.com
seorj.cn
server.ms
sharklasers.com
shieldemail.com
shut.name
shut.ws
sina.com
sinnlos-mail.de
sky-ts.de
slaskpost.se
slopsbox.com
slopsbox.net
slopsbox.org
slopsbox.osocial.nu
slopsbox.se
smashmail.de
smellfear.com
smtp.ru
sneakemail.com
sneakmail.de
snkmail.com
sofimail.com
sofort-mail.de
sofort-mail.net
sofortmail.de
sogetthis.com
sohu.com
soodonims.com
spailbox.com
spailbox.net
spailbox.org
spam.dontassrape.us
spam.la
spam.su
spam.w00ttech.com
spam4.me
spamail.de
spamavert.com
spambob.com
spambob.com.ru
spambob.net
spambob.org
spambog.com
spambog.de
spambog.ru
spambox.us
spamcero.com
spamcorptastic.com
spamday.com
spamex.com
spamfree.eu
spamfree24.com
spamfree24.de
spamfree24.eu
spamfree24.info
spamfree24.net
spamfree24.org
spamgbog.de
spamgoes.in
spamgourmet.com
spamherelots.com
spamhereplease.com
spamhole.com
spamify.com
spaminator.de
spamkill.info
spaml.com
spaml.de
spammedic.com
spammotel.com
spamobox.com
spamsalot.com
spamslicer.com
spamspot.com
spamthisplease.com
spamtrail.com
speed.1s.fr
spoofmail.de
squizzy.de
sry.li
stinkefinger.net
stop-my-spam.com
stuffmail.de
super-auswahl.de
supergreatmail.com
superrito.com
superstachel.de
suremail.info
tagyourself.com
teewars.org
teleworm.com
teleworm.us
temp-mail.com
temp-mail.de
temp-mail.org
temp-mail.ru
tempail.com
tempemail.co.za
tempemail.net
tempinbox.com
tempmail.com
tempmail.de
tempmail.eu
tempmail.org
tempmaildemo.com
tempmailer.com
tempmailer.de
tempomail.fr
temporarily.de
temporaryemail.net
temporaryforwarding.com
temporaryinbox.com
temporarymailaddress.com
thanksnospam.info
thankyou2010.com
thc.st
theanonymousemail.com
thisisnotmyrealemail.com
thismail.net
throwaway.de
tilien.com
tittbit.in
tokem.co
topranklist.de
tormail.org
tradermail.info
trash-mail.at
trash-mail.com
trash-mail.de
trash-mail.net
trash.name
trash2009.com
trash4.me
trashdevil.com
trashdevil.de
trashemail.de
trashemails.de
trashinbox.com
trashmail.at
trashmail.com
trashmail.de
trashmail.me
trashmail.net
trashmail.org
trashmail.ws
trashmailer.com
trashmails.com
trashymail.com
trialmail.de
twinmail.de
twinmail.de.com
tyldd.com
uggsrock.com
unbekannt.us
us.af
veryrealemail.com
vidchart.com
vipmail.name
vipmail.pw
vpn.st
vr-zone.com
vsimcard.com
warez.im
wasteland.rfc822.org
watch-glenn-beck.info
watch-harry-potter.com
watchfull.net
watchnode.uni.cc
wbb3.de
webm4il.info
weg-werf-email.de
wegwerf-email-adressen.de
wegwerf-email.de
wegwerf-email.net
wegwerf-emails.de
wegwerfadresse.de
wegwerfemail.com
wegwerfemail.de
wegwerfemail.eintagsmail.de
wegwerfemailadresse.com
wegwerfmail.de
wegwerfmail.net
wegwerfmail.org
wh4f.org
whothepimp.com
whyspam.me
wildcard.less.ns0.it
willhackforfood.biz
wolfsmail.tk
wolfsmails.tk
wonne.de
worldmail.tv
wpmu.org.cn
writeme.us
wuzup.net
x.ip6.li
yahoo.cn
yandex.ru
yanet.me
yopmail.com
yopmail.fr
yopmail.net
youmailr.com
ystea.org
yxzx.net
z1p.biz
zaitg.cn
zehnminuten.de
zehnminutenmail.de
zippymail.info
zipzaps.de
zoaxe.com
zyseo.com
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment