关于javamail问题,困惑多天了,抛出AuthenticationFailedException异常,请高手指正
抛出的异常:
javax.mail.AuthenticationFailedException
at javax.mail.Service.connect(Service.java:264)
at javax.mail.Service.connect(Service.java:134)
at javax.mail.Service.connect(Service.java:86)
at com.sun.mail.smtp.SMTPTransport.connect(SMTPTransport.java:144)
at javax.mail.Transport.send0(Transport.java:150)
at javax.mail.Transport.send(Transport.java:80)
at com.kevin.MailExample.main(MailExample.java:48)
代码如下:
package com.kevin;
import java.util.Properties;
import javax.mail.Authenticator;
import javax.mail.BodyPart;
import javax.mail.Message;
import javax.mail.PasswordAuthentication;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeBodyPart;
import javax.mail.internet.MimeMessage;
import javax.mail.internet.MimeMultipart;
public class MailExample {
public static void main(String[] args) {
try {
String username = "hanutao@163.com";
String password = "*****";
String smtp_server = "smtp.163.com";
String from_mail_address = username;
String to_mail_address = "hanutao@beelink.com";
Authenticator auth = new PopupAuthenticator(username, password);
Properties mailProps = new Properties();
mailProps.put("mail.smtp.auth", "true");
mailProps.put("username", username);
mailProps.put("password", password);
mailProps.put("mail.smtp.host", smtp_server);
Session mailSession = Session.getDefaultInstance(mailProps, auth);
MimeMessage message = new MimeMessage(mailSession);
message.setFrom(new InternetAddress(from_mail_address));
message.setRecipient(Message.RecipientType.TO,
new InternetAddress(to_mail_address));
message.setSubject("Mail Test");
MimeMultipart multi = new MimeMultipart();
BodyPart textBodyPart = new MimeBodyPart();
textBodyPart.setText("电子邮件测试内容!");
multi.addBodyPart(textBodyPart);
message.setContent(multi);
message.saveChanges();
Transport.send(message);
}
catch (Exception ex) {
System.err.println("邮件发送失败的原因是:" + ex.getMessage());
System.err.println("具体错误原因:");
ex.printStackTrace(System.err);
}
}
}
class PopupAuthenticator
extends Authenticator {
private String username;
private String password;
public PopupAuthenticator(String username, String password) {
this.username = username;
this.password = password;
}
public PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication(this.username, this.password);
}
}