How to check whether an email address exists?

I'm trying to check 2,000 email addresses to see whether they exist. Are there ways to check whether an email address is valid without sending email to each address?.

I found an online service Email Unlimited, but it only checks 20 email addresses before having to buy the full version.


Just for the sake of completeness: some SMTP servers do indicate if an email address exists. Following a full example in another answer:

telnet gmail-smtp-in.l.google.com 25

helo example.com
mail from: <[email protected]>
rcpt to: <[email protected]>
550-5.1.1 The email account that you tried to reach does not exist. Please try
550-5.1.1 double-checking the recipient's email address for typos or
550-5.1.1 unnecessary spaces. Learn more at
550 5.1.1 http://mail.google.com/support/bin/answer.py?answer=6596

Upon success, and on servers that cannot or do not want to tell if an address is valid, the last command would yield:

250 2.1.5 OK

One could then simply invoke quit without sending any email at all. Still, when trying many addresses, this might also get you blocked.

(Gmail does not support the vrfy command. On the website, it also has a "check availability" button when signing up for a new Gmail account. That could also give you some information, but old addresses will be unavailable for some time.)


If this were possible, spammers worldwide would be singing with joy.

Sorry but no, it's not possible to know whether any given e-mail address exists or not.

In my opinion, this is a feature!

  • If you know your correspondents, then you will know their contact information.
  • If you don't know your correspondents, then you're a stranger and they will not appreciate getting unsolicited mail from you.
  • If you used to know your correspondents and they haven't kept you informed of their address changes, then they've made an (un?)conscious decision to not receive your mail.

The best you can do is to send out an e-mail to your list and then remove those that bounce (= those that could not be delivered).

Be careful! In some countries it is illegal to send unsolicited bulk e-mail to people who haven't explicitly allowed this in advance.


There really isn't any good way to do so. There is a 'VRFY' command in the SMTP protocol, but I don't know anyone who lets that operate anymore - it's too useful to spammers. Most hosts will just refuse the command anymore.

The best you can do right now is to send the e-mail and record what bounces (noting that some mail hosts will just blackhole undeliverable mail instead of bouncing it).

I don't know what your business or purpose is with this list, but you should know that if you go sending e-mail to 2000 people at once, you're likely to get flagged as a spammer by some mail hosts.


It is not possible to accurately determin if an address is real or not - any product that claims it can is exagerating its abilities so you shoudl consider any other claims made with a cynical eye.

There are in existence F/OSS libraries that do as much as it is possible to do: I would guess that most software on the market is just a fancy wrapper around those so you could perhaps easily make your own that is just as good/bad if you have any coding experience. But remember that no matter how good the validation routine is it will be very prone to give both false positive and false negative results.

http://freshmeat.net/projects/emailaddressvalidationcomponent for example comes up on a quick search fo freshmeat and assuming the description is correct it does everything that can actually be done to try verify an address.


You can ping the email address.

From Lifehacker.com:

http://lifehacker.com/5697360/how-to-verify-if-an-email-address-is-real-or-fake

When you send an email to someone, the message goes to an SMTP server which then looks for the MX (Mail Exchange) records of the email recipient's domain.

Hit the link for step-by-step instructions on how to ping an email address.