本帖最后由 bgc525725278 于 2010-12-07 14:28:11 编辑

解决方案 »

  1.   

    问题补充:smtp.126.com会发送成功,但是当用smtp.sina.com的时候就报错了错误如下:
    javax.mail.AuthenticationFailedException: failed to connect
    at javax.mail.Service.connect(Service.java:322)
    at javax.mail.Service.connect(Service.java:172)
    at javax.mail.Service.connect(Service.java:121)
    at javax.mail.Transport.send0(Transport.java:190)
    at javax.mail.Transport.send(Transport.java:120)
    at com.zhaipuhong.j2ee.jmail.TestJavamail.sendEmail(TestJavamail.java:51)
    at com.zhaipuhong.j2ee.jmail.TestJavamail.main(TestJavamail.java:65)
    但我的账户和密码都没有问题,sina邮箱的smtp设置了啊!求大侠解决!
      

  2.   

    是“smtp.sina.com.cn”吗?我添加上试过之后还是报同样的错误!
      

  3.   

    我试过了,单独使用smtp.126.com或者smtp.sina.com的时候是可以发送成功,但两者接连着使用发送(就如我上面所写的那样)就会报错了
      

  4.   

    但是如果多调用几次方法,使用不同的是smtp服务器,如下所示:
    TestJavamail tj=new TestJavamail();
    tj.sendEmail("smtp.126.com", "发件箱", "账户","密码", "收件箱");
    tj.sendEmail("smtp.sina.com", "发件箱", "账户","密码", "收件箱" );
    tj.sendEmail("服务器的host", "发件箱", "账户","密码", "收件箱" );
    tj.sendEmail("服务器的host", "发件箱", "账户","密码", "收件箱" );
    就仍然会报:javax.mail.AuthenticationFailedException: failed to connect,这个异常。这是什么原因导致的呢?
      

  5.   

    我看到你给我的留言了,我试了试。发现是Session.getDefaultInstance这个的问题。
    从处理流程中可以看出,首先是从缓存中查找是否有properties存在    
    如果存在,则加载默认的properties    
    如果不存在才加载用户自己定义的properties,    
    所以当一个应用为每个用户独立创建properties的时候,还是应该调用getInstance,    
    除非你希望有一个默认的properties让用户使用。