SMTP Validation of E-Mail Address
I'm working on a project which requires me to know with extremely high probability the availability of an e-mail account on a mail server (let's use Hotmail in this example.) I know that the VRFY command is often ignored (Hotmail says "I'll take a message" or something of the like when I try it,) so I'd like to know the best way to go about this. I've read that the following should be fairly accurate, but Hotmail gives me开发者_StackOverflow中文版 a pain about it:
EHLO hotmail.com
MAIL FROM:<MY_ADDRESS@hotmail.com>
(Hotmail gives me the below error here)
RCPT TO:<ADDRESS_I_WANT_TO_CHECK@hotmail.com>
The error Hotmail gives me is:
550 SC-001 Mail rejected by Windows Live Hotmail for policy reasons. Reasons for rejection may be related to content with spam-like characteristics or IP/domain reputation problems. If you are not an email/network admin please contact your E-mail/Internet Service Provider for help. Email/network admins, please visit http://postmaster.live.com for email delivery information and support
Connection closed by foreign host.
[root@iago ~]#
This isn't just a Hotmail problem; similar things have happened when I try it with other e-mail hosts.
On a side note, oh how I wish the finger protocol was still widely used...
This whole approach is doomed to fail, for reasons which are probably obvious to you.
If, instead, you describe the problem this is trying to solve, I'm sure you'll get useful answers.
Edit
Just guessing here...you say they're not unsolicited, but it's a bad thing if they go into the bit bucket.
Therefore, either [1] it's costing you something to generate the content and/or send it out (are you sending huge files?) [2] if users give you bad email addresses and don't get what they asked for something very bad will happen (++angry users?).
Both scenarios are addressed by using a "confirmation email" process. When somebody gives you their email, send them a confirmation link, and tell them to expect it. If they don't get the email, they know something's wrong and the burden is on them. If they do get it, clicking on the enclosed link "proves" the address is good, at least for now.
You can thank the spammers for the disabled VRFYs. What you could do is to do the mailout and weed out the email addresses for the emails that bounces back.
Edit: You can do the first weed out by buying the service from Verify Email address. I do suggest that you allow for the people to opt-out on future correspondence.
Putting aside the question of why you want this, do you realize that such knowledge is practically useless? That an e-mail address exists guarantees absolutely nothing.
精彩评论