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.)