2014-12-20 2 views
1

Невозможно отправить почту аккаунт Gmail с помощью программы Java, это дает AuthenticationFailedException первопричина:Невозможно отправить почту GMAIL с помощью программы Java

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(); 

    } 

} 
+0

проверить свой пароль – dsharew

+1

Вы установили * 2-х ступенчатую аутентификацию * в учетной записи Gmail, которую используете для отправки писем? – OO7

+0

Ваш код отлично работает на меня. Проверьте свою аутентификацию. – Joachim

ответ

0

Совершит посмотрите на странице this. Он имеет полный пример, который вы можете изменить в соответствии с вашими потребностями. Также попробуйте решить, если проблема будет решена с помощью вопроса this.

В первой ссылке показано, что порт должен быть 587, а не 465. Обе ссылки использовали ttls с props.put("mail.smtp.starttls.enable", "true");.

Надеюсь, это помогло.

+0

Это должен быть комментарий – nbro

+1

Ссылка только ответы недействительны. Лучше вы включаете что-то релевантную форму, которая ссылается и дает ссылку для дальнейших ссылок. – OO7

+0

Спасибо. Я буду! – theTechnoKid

Смежные вопросы