麻烦各位了,我在做一个JavaMail程序时碰到了困难,我使用的是sun提供的api,
   想连接到smtp.163.com,需要的验证类代码为
public class SmtpAuth extends Authenticator{ 
   String userName="";  String password="";
   public SmtpAuth(String user,String pw){ this.userName=user;  this.password=pw;}
   public PasswordAuthentication getPasswordAuthentication(){
      return new Authentication(userName,password.toCharArray());
   }

   在另一个类里,有这样的代码 SmtpAuth auth=new SmtpAuth(userName,password);
                              Session mailSession=Session.getDefaultInstance(prop,auth);
    mailuserinfobean.java:32: 找不到符号
符号: 方法 getDefaultInstance(java.util.Properties,beans.SmtpAuth)
位置: 类 javax.mail.Session
                this.mailSession=Session.getDefaultInstance(prop,auth);
                                        ^
mailuserinfobean.java:33: 无法将 javax.mail.Session 中的 setPasswordAuthenticati
on(javax.mail.URLName,javax.mail.PasswordAuthentication) 应用于 (javax.mail.URLN
ame,java.net.PasswordAuthentication)
                this.mailSession.setPasswordAuthentication(new URLName(host),aut
h.getPasswordAuthentication());
                ^
   请各位帮小弟看一看。

解决方案 »

  1.   

       晕,还是不行。我换了JBuilder自带的类库还是不行,
       错误提示的Session.getDefaultInstance()的参数类型不正确,
      但是SmtpAuth确实extend了Authenticator呀。
       大家帮帮忙!
      

  2.   

    你得看一哈你是不是导入Authenticator类导入错了,你可能导入的不是JAVAMAIL包中的那个Authenticator类(javax.mail.Authenticator),你是不是导入了java.net.*中的那个Authenticator还有???没有了
      

  3.   

       真是呀,导成了java.net.Authenticator类,楼上真厉害。
       可否容我问个挺弱智的问题:bean里的异常处理中System.out.println,
       在哪里可以看到输出流的信息呀,我瞎蒙了一晚,还是找不到,我用的是jbuilder。
       谢谢!
      

  4.   

    你就直接使用Authenticator不行吗???  你可以先试一下直接使用Authenticator类 看行不
      

  5.   

    JBUILDER下有一个OUTPUT输出窗口嘛,除了JBUILDER  你在作开发的时候 还在哪个环境下???  应该可以在切换到那个环境下查看OUTPUT,  如果只是使用JBUILDER  应该就直接在OUTPUT输出窗口中可以看到的撒。  我也就以前用过一下JBUILDER  现在我没有  有点不熟悉老
      

  6.   

        行了,我换成sun或者jb提供的mail api的Authenticator就连通服务器了,谢谢!