Почтовый клиент в Java - PullRequest
       20

Почтовый клиент в Java

2 голосов
/ 28 июля 2010

try {Properties props = new Properties ();props.put ("mail.smtp.starttls.enable", "true");props.setProperty ("mail.transport.protocol", "smtp");props.setProperty ("mail.smtp.host", "smtp.gmail.com");props.put ("mail.smtp.auth", "true");props.put ("mail.smtp.port", "465");props.put ("mail.smtp.socketFactory.port", "587");props.put ("mail.smtp.socketFactory.fallback", "false");props.setProperty ("mail.user", "username");props.setProperty ("mail.password", "password");

Session session = Session.getDefaultInstance(props, new javax.mail.Authenticator() 
  {
   protected PasswordAuthentication getPasswordAuthentication()
   { return new PasswordAuthentication("username","password"); }
  }); 
 session.setDebug(true);

 MimeMessage msg = new MimeMessage(session);

 InternetAddress addressFrom = new InternetAddress(from);
 msg.setFrom(addressFrom);

 msg.addRecipient(Message.RecipientType.TO,new InternetAddress(" Recipient mail id "));

 msg.setSubject(subject);
 Transport transport = session.getTransport();
 transport.connect();
 transport.sendMessage(msg,msg.getRecipients(Message.RecipientType.TO));
 transport.close();

} catch (Exception e) {
 // TODO Auto-generated catch block
 e.printStackTrace();
}

Я использую указанный выше код для отправки электронной почты на учетную запись Gmail.Я установил значение хоста smtp (smtp.gmail.com) и порт (465) в свойствах.Но письмо не отправлено и мое приложение застряло на долгое время.После этого я получаю сообщение об ошибке, как указано ниже

"javax.mail.MessagingException: не удалось подключиться к узлу SMTP: smtp.gmail.com, порт: 465, ответ: -1"

Может кто-нибудь сказать, в чем причина и как решить эту проблему?

1 Ответ

1 голос
/ 28 июля 2010

Настройка

props.put("mail.smtp.starttls.enable", "true");

включает tls, который находится на порту 587 , а не 465

props.put("mail.smtp.port", "587");

См. Google Doc

И проверьте, действительно ли вам нужны эти строки

props.put("mail.smtp.socketFactory.port", "587");
props.put("mail.smtp.socketFactory.fallback", "false");
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...