我正在尝试使用java邮件api发送邮件。代码中除Authenticator类之外的所有内容都没问题。警告为...

Constructor PasswordAuthentication can not be applied to given types.
required java.lang.String,java.lang.char[]


这是我的代码片段,其中我得到警告错误,但无法解决问题...

Authenticator auth = new Authenticator() {

        @Override
        public PasswordAuthentication getPasswordAuthentication() {
 error           return new PasswordAuthentication(userName, password);
        }
    };
      error   Session session = Session.getInstance(properties, auth);


这两条带有// error的行在代码中给出了错误。

请帮我。
提前致谢..

最佳答案

PasswordAuthentication构造函数仅接受Stringchar数组作为参数。所以你应该做:

return new PasswordAuthentication(userName, password.toCharArray());

编辑:

问题是Session.getInstance(java.util.Properties props, Authenticator authenticator)需要Authentificator包中的javax.mail对象。

我认为您导入了错误的软件包。它应该是javax.mail.Authenticator而不是java.net.Authenticator

因此,应该使用PasswordAuthentication包中的对象javax.mail(接受两个Strings作为参数),而不是PasswordAuthentification包中的对象java.net(接受String和数组)。

10-08 02:13