Я пытаюсь отправить письмо, используя gmail smtp, используя javax.mail. ниже мой код
public static void send(String from,String password,String to,String sub,String msg){
//Get properties object
Properties props = new Properties();
props.put("mail.smtp.host", "smtp.gmail.com");
props.put("mail.smtp.socketFactory.port", "465");
props.put("mail.smtp.socketFactory.class",
"javax.net.ssl.SSLSocketFactory");
props.put("mail.smtp.auth", "true");
props.put("mail.smtp.port", "465");
//get Session
Session session = Session.getDefaultInstance(props,
new javax.mail.Authenticator() {
protected PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication(from,password);
}
});
//compose message
try {
MimeMessage message = new MimeMessage(session);
message.addRecipient(Message.RecipientType.TO,new InternetAddress(to));
message.setSubject(sub);
message.setText(msg);
//send message
Transport.send(message);
System.out.println("message sent successfully");
} catch (MessagingException e) {throw new RuntimeException(e);}
}
Код работает нормально Когда я запускаю его на своем локальном сервере, но когда я пытаюсь запустить его на Elastic beanstalk (мой сервер работает на AWS EBS), тогда наступает исключение сбоя аутентификации
Примечание. У меня включен доступ к менее защищенному приложению из настроек Google A / C, но я все еще получаю эту ошибку
javax.mail.AuthenticationFailedException: 534-5.7.14 Пожалуйста, войдите в систему через веб-браузер и повторите попытку.
534-5.7.14 Узнайте больше на
534 5.7.14 https://support.google.com/mail/answer/78754 13 см3053341.ити.6 - gsmtp