本人现在做个JAVA WEB项目,现在客户要求检查用户输入的email的有效性验证,(注意:检测的是在internet上是用户所填写的邮箱地址是否存在,而不是所填写的文本格式是否正确)   
敬候大虾赐教

解决方案 »

  1.   

    数量少,还是可以解决的。看一下各大邮箱服务商的注册地址
    然后用户名去尝试,163的地址就是http://reg.163.com/checkssn.jsp?username=..........但是估计会有数量限制,1个ip
      

  2.   

    刚看了下这个帖子http://topic.csdn.net/t/20040610/12/3080094.html
    貌似说要写dll,来检测的
      

  3.   

    客户现在的要求是:加入用户输入的邮件不存在的话,直接不进行db的操作,返回页面给出提示信息,
            是不想让db添加无用的数据...
      

  4.   

    假如 现在不判断输入的EMAIL是否真实存在,
    就是说用户输入的是真实存在的email,系统也成功的给该email发了邮件,然后中途出了点异常,系统收到退信,
    也不进行db的操作,返回页面给出提示信息,
    这种能实现麽?等待高手指教 
      

  5.   

    http://blog.csdn.net/CrazyGou/archive/2007/06/13/1649834.aspx有些邮件服务器使用改进的smtp协议,可能不会根据用户是否存在而返回250等信息
      

  6.   

    这个vb6com组件提供了一项即时邮件查询的功能。它有效的避免了向一个不存在的账户发送邮件的情况。例如,在asp页面里面检查用户输入的邮件地址是否正确,并避免在你的用户数据库里面存储相关的错误信息。 
    主要内容 
    工作原理 
    让我们首先来看一下这个组件是如何进行工作的。 
    首先给定一个e-mail地址(例如:[email protected]),然后它会执行如下的步骤: 
    1、  将用户名(someone)从域名(somewhere.com)中分离出来; 
    2、  在dns(域名服务器)上进行查询:域名是否可用; 
    3、  如果dns做出响应,它将在服务器上对mx进行查询(mail exchanger邮件交换服务器),并试着与在这个域中每一个mx建立会话,直到建立会话成功; 
    4、  通过使用smtp协议,它使用vrfy命令和mail handshake(helo,mailt from,rcpt to)来验证用户名在该域中的存在; 
    5、  随后组件将返回测试的结果,并给出四种可能的结果: 
    l     “域”不存在。服务器做出否定响应。 
    l     “域”存在,但是无法查询用户名(见注释)。服务器做出部分确认响应。 
    l     “域”存在,但是用户名不存在。服务器做出否定响应。 
    l     “域”和用户名都存在。服务器做出完全确认响应。 
    注释: 
    如果“域”存在,但是mx(邮件交换服务器)并不存在于该域中(典型特征是二级域名由isp掌握着),这样通过smtp协议将会无效,应为那些服务器被指派去接受子域中的邮件,并且根本不会检查用户名。所以组建的程序设计,从这里跳出并返回出部分确认响应。 
      

  7.   

    1.SMTP是工作在两种情况下:一是电子邮件从客户机传输到服务器;二是从某一个服务器传输到另一个
      服务器
    2.SMTP是个请求/响应协议,命令和响应都是基于ASCII文本,并以CR和LF符结束。响应包括一个表示返 
      回状态的三位数字代码
    3.SMTP在TCP协议25号端口监听连接请求
    4.连接和发送过程
    SMTP协议说复杂也不复杂(明明带有“简单”这个词嘛),说简单如果你懂得Sock。不过现在只是我们利用的就是第一条中说的,从客户机传输到服务器,当我们向一台服务器发送邮件时,邮件服务器会首先验证邮件发送地址是否真的存在于本服务器上。
    操作的步骤如下:
    连接服务器的25端口(如果没有邮件服务,连了也是白连)
    发送helo问候
    发送mail from命令,如果返回250表示正确可以,连接本服务器,否则则表示服务器需要发送人验证。
    发送rcpt to命令,如果返回250表示则Email存在
    发送quit命令,退出连接
      

  8.   

    xaj21的方法也不错,但要了解下SMTP协议,中间的延迟等待也是个问题
      

  9.   

    补充下,如果光检测邮箱是否存在没有多大意义吧?
    如果乱填一个[email protected],但是[email protected]这个邮箱又正好存在,
    这个时候怎么解决?这个邮箱并不是注册用户的真实邮箱,
    还是感觉发邮件,激活,这样比较好.嘎