У меня запущено веб-приложение на Payara 5, и когда я пытаюсь отправить электронное письмо, оно выдает следующую ошибку:
org.apache.commons.mail.EmailException: Sending the email to the following server failed : smtp.gmail.com:587
at org.apache.commons.mail.Email.sendMimeMessage(Email.java:1138)
at org.apache.commons.mail.Email.send(Email.java:1163)
at coclient.relatorio.RelChamada.enviarPeloGmail(RelChamada.java:177)
...
Caused by: java.lang.NoSuchFieldError: isEC
...
at com.sun.mail.smtp.SMTPTransport.openServer(SMTPTransport.java:2175)
at com.sun.mail.smtp.SMTPTransport.protocolConnect(SMTPTransport.java:740)
at javax.mail.Service.connect(Service.java:388)
...
at javax.mail.Transport.send(Transport.java:124)
at org.apache.commons.mail.Email.sendMimeMessage(Email.java:1128)
....
Но когда я запускаю метод вручную, он работает. Код ниже
public String enviarPeloGmail() {
try {
HtmlEmail email = new HtmlEmail();
email.setHostName("smtp.gmail.com");
email.setSmtpPort(587);
//email.setSslSmtpPort("587");
email.setAuthenticator(new DefaultAuthenticator("remetente@gmail.com", "senha_remetente"));
email.setSSL(true);
email.setTLS(true);
email.setFrom("remetente@gmail.com");
email.setSubject("ENVIO DE EMAIL TESTE PELO SISTEMA");
email.setHtmlMsg("ESTOU MANDANDO EMAIL PELA CONTA DO GMAIL PELO SISTEMA");
email.addTo("destinatario@gmail.com");
email.send();
} catch (EmailException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return null;
}
public static void main(String[] args) {
RelChamada r = new RelChamada();
r.enviarPeloGmail();
}