Я пытаюсь получить этот пример для работы библиотеки электронной почты Apache Commons. Вот мой код:
SimpleEmail email = new SimpleEmail();
email.setHostName("smtp.gmail.com");
email.setSmtpPort(465);
email.setAuthenticator(new DefaultAuthenticator("username@gmail.com", "password"));
email.setTLS(true);
try {
email.setFrom("username@gmail.com");
email.setSubject("TestMail");
email.setMsg("This is a test mail ... :-)");
email.addTo("username@gmail.com");
System.out.println("Sending...");
email.send();
System.out.println("Email sent!");
} catch (Exception e) {
System.out.println("Email not sent!");
e.printStackTrace();
}
Как вы можете видеть, он практически не изменился по сравнению с примером, за исключением того, что я должен использовать порт 465 вместо 587, потому что 587 вызывает исключение Connection refused
(на основе этот вопрос ). Теперь этот код висит на строке email.send()
. Единственный вывод, который я получаю:
Sending...
Но не было исключений. Нужно ли открывать порт в брандмауэре? (Возможно, я не смогу сделать это, поскольку я пытаюсь сделать это с работы). Спасибо!
Редактировать
После долгого времени я получаю это исключение:
org.apache.commons.mail.EmailException: Sending the email to the following server failed : smtp.gmail.com:465
...
Caused by: javax.mail.MessagingException: Could not connect to SMTP host: smtp.gmail.com, port: 465, response: -1