我要做的不是验证email的格式,而是验证其是否真实存在。在网上搜索了一番,得到以下思路:
1.根据email地址得到MX服务器
2.用tcpip登陆该服务器,发送几个命令:
  helo
  mail from
  rcpt to
如果该email地址真实存在,rcpt to 返回的值不一样。
现在我基本实现了以上功能,但是无法实现批量验证,遇到的问题是被封IP。
再搜索,知道了许多邮件服务器在25端口是挂有反垃圾邮件系统,多次这样操作后很容易被封IP,列入黑名单。
请问,还有其他办法实现批量验证email地址真实性吗?

解决方案 »

  1.   

    email的结构是:用户名@网站.XXX,验证可分成两部分:
    1、验证@后面的服务器是否正确:当记录有效服务器不存在时,可用LZ的方法查询一次,返回正确就记录下该服务器,下次无须再考虑这问题;
    2、发一个确认函到对方Email地址,如果没有出现退信情况(可从自己Email服务中检查到退信标记),就确认Email正确,否则将注册的帐号处理掉。
      

  2.   

    1楼的方法也对,但是我要即时知道结果,给每个邮箱地址发一封信再查退信太慢,况且如果有上万个email待验证,发这么多邮件也会被封的。
      

  3.   

    理论上就办不到的事情。E-mail协议决定的。没有退信不代表就是地址无效。
    而且我可以自己写个程序,实现类似泛邮件接受的功能。至于封ip,请你想想用户收到垃圾邮件以及网管面对网络攻击的愤怒的心情,请好自为之。现在发送垃圾邮件可以判刑了,lz慎重。