繁体   English   中英

使用Java发送电子邮件时出现AuthenticationFailedException

[英]AuthenticationFailedException while sending email using Java

我正在尝试使用Java API发送电子邮件,并且给出了正确的emailid和密码,但仍然收到AuthenticationFailedException。

我也尝试给host = mail.smtp.port并将端口更改为587,但最终还是遇到相同的错误。

请帮助我我要去哪里了..?

public class SendEmail
   {
   public static void main(String [] args)
   {    
  // Recipient's email ID needs to be mentioned.
  String to = "to@gmail.com";

  // Sender's email ID needs to be mentioned
  final String from = "from@gmail.com";

  // Assuming you are sending email from localhost
  final String host = "smtp.googlemail.com";

  // Get system properties
  Properties properties = System.getProperties();

  // Setup mail server
  properties.setProperty("mail.smtp.host", host);
  properties.setProperty("mail.smtp.starttls.enable", "true");
  properties.setProperty("mail.smtp.user", from);
  //properties.setProperty("mail.smtp.password", "xyz");

  properties.setProperty("mail.debug", "false");
  properties.setProperty("mail.smtp.auth", "true"); 
//  properties.setProperty("mail.smtp.port", "587");

  // Get the default Session object.
 // Session session = Session.getDefaultInstance(properties);

  Session session = Session.getInstance(properties,
          new javax.mail.Authenticator() {

              protected PasswordAuthentication getPasswordAuthentication() {
                  return new PasswordAuthentication(from, "xyz");
              }
          });

  session.setDebug(true);

  try{
     // Create a default MimeMessage object.
     MimeMessage message = new MimeMessage(session);

     // Set From: header field of the header.
     message.setFrom(new InternetAddress(from));

     // Set To: header field of the header.
     message.addRecipient(Message.RecipientType.TO,
                              new InternetAddress(to));

     // Set Subject: header field
     message.setSubject("This is the Subject Line!");

     // Now set the actual message
     message.setText("This is actual message");

     // Send message
    // Transport.send(message);


     Transport.send(message);
     System.out.println("Sent message successfully....");
  }catch (MessagingException mex) {
     mex.printStackTrace();
  }
 }
}

错误:

javax.mail.AuthenticationFailedException
at javax.mail.Service.connect(Service.java:306)
at javax.mail.Service.connect(Service.java:156)
at javax.mail.Service.connect(Service.java:105)
at javax.mail.Transport.send0(Transport.java:168)
at javax.mail.Transport.send(Transport.java:98)

只需使用此链接检查是否已从“ Less Secure Apps”启用登录。 需要为from@gmail.com帐户启用此设置。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM