У меня довольно простое приложение JavaMail. Он отлично работает, когда я запускаю его в Eclipse или экспортирую как исполняемый файл. Когда я пытаюсь запустить его на другом компьютере, электронное письмо не отправляется и не выдается никаких исключений. В коде у меня есть несколько println (), чтобы увидеть, куда в программе он попадает.
Достигается "--- 2 ---", поэтому я предполагаю, что что-то не так с объектом MimeMessage или объектом Session при перемещении на другой компьютер.
Есть идеи, почему эта часть программы будет работать на одном компьютере, а не на другом?
try {
Properties properties = new Properties();
properties.put("mail.smtp.auth", "true");
properties.put("mail.smtp.starttls.enable", "true");
properties.put("mail.smtp.host", "smtp-mail.outlook.com");
properties.put("mail.smtp.port", "587");
Session session = Session.getInstance(properties,
new javax.mail.Authenticator() {
protected javax.mail.PasswordAuthentication getPasswordAuthentication() {
return new javax.mail.PasswordAuthentication(username, password);
}
});
System.out.println("--- 1 ---");
System.out.println("--- 2 ---");
MimeMessage message = new MimeMessage(session);
System.out.println("--- 3 ---");
message.setFrom(new InternetAddress(from));
System.out.println("--- 4 ---");
message.setRecipients(Message.RecipientType.TO, addressList);
System.out.println("--- 5 ---");
message.setSubject(subject + " " + LocalDateTime.now().format(mainDateFormatter));
System.out.println("--- 6 ---");
System.out.println(message.getSubject());
message.setContent(html, "text/html");
System.out.println("--- 7 ---");
Transport.send(message);
System.out.println("Done");
} catch (Exception e) {
System.out.println(e.toString());
throw new RuntimeException(e);
}