【发布时间】:2015-02-19 06:22:17
【问题描述】:
无法使用 Java 程序向 gmail 帐户发送邮件,这是给AuthenticationFailedException 根本原因:
javax.mail.SendFailedException: Sending failed;
nested exception is:
class javax.mail.AuthenticationFailedException
at javax.mail.Transport.send0(Transport.java:218)
at javax.mail.Transport.send(Transport.java:80)
at com.sekhar.mail.SendMail.<init>(SendMail.java:32)
at com.sekhar.mail.SendMail.main(SendMail.java:48)
在这里查看程序:
public class SendMail {
public SendMail() {
// TODO Auto-generated constructor stub
Properties props = new Properties();
props.put("mail.smtp.host", "smtp.gmail.com");
props.put("mail.smtp.port", "465");
props.put("mail.smtp.auth", "true");
props.put("mail.smtp.socketFactory.class", "javax.net.ssl.SSLSocketFactory");
try {
Authenticator auth = new SMTPAuthenticator();
Session session = Session.getInstance(props,auth);
MimeMessage msg = new MimeMessage(session);
msg.setSubject("Open");
msg.setFrom(new InternetAddress("***@gmail.com"));
msg.setRecipient(Message.RecipientType.TO, new InternetAddress("***@gmail.com"));
msg.setText("How are you");
Transport.send(msg);
System.out.println("Mail Delivered......");
} catch (Exception e) {
// TODO: handle exception
e.printStackTrace();
}
}
private class SMTPAuthenticator extends Authenticator{
public PasswordAuthentication getPasswordAuthentication(){
return new PasswordAuthentication("***@gmail.com","****");
}
}
public static void main(String[] args) {
SendMail mail = new SendMail();
}
}
【问题讨论】:
-
您是否在用于发送电子邮件的 Gmail 帐户中设置了两步验证?
-
你的代码对我很好。检查您的身份验证。