我正在尝试使用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
构造函数仅接受String
和char
数组作为参数。所以你应该做: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
和数组)。