Отправить javamail с помощью Office365
У меня возникли проблемы с настройкой параметров SMTP для отправки почты с помощью javax.mail (1.4.4)
через Office365, поэтому я решил опубликовать свойства здесь для других.
Ответы
Ответ 1
private static Properties props;
private static Session session;
static {
props = new Properties();
props.put("mail.smtp.starttls.enable", "true");
props.put("mail.smtp.port", "587");
props.put("mail.smtp.host", "m.outlook.com");
props.put("mail.smtp.auth", "true");
session = Session.getInstance(props, new Authenticator() {
@Override
protected PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication("office365 email address"
"office365 password");
}
});
}
Ответ 2
Пример рабочего кода:
Email email = new SimpleEmail();
email.setHostName("smtp.office365.com");
email.setSmtpPort(587);
email.setAuthenticator(new DefaultAuthenticator("[email protected]", "****"));
email.setStartTLSEnabled(true);
try {
email.setFrom("[email protected]");
email.setSubject("Job Failure");
email.setDebug(true);
email.setMsg("This is a test mail ... :-)" );
email.addTo("[email protected]");
email.send();
} catch (EmailException e) {
e.printStackTrace();
}
Ответ 3
И с помощью spring -boot вам просто нужно добавить это в свой application.properties
:
spring.mail.host = smtp.office365.com
spring.mail.username = [email protected]
spring.mail.password = s3cr3t
spring.mail.port = 587
spring.mail.properties.mail.smtp.auth = true
spring.mail.properties.mail.smtp.starttls.enable = true
Ответ 4
Единственной ошибкой, которую я замечаю в вашем коде, является неправильный Host
javaMailProperties.setProperty("mail.smtp.from", "[email protected]");
javaMailProperties.setProperty("mail.smtp.user", "[email protected]");
javaMailProperties.setProperty("mail.smtp.password","Password");
javaMailProperties.setProperty("mail.smtp.host", "smtp.office365.com");
javaMailProperties.setProperty("mail.smtp.port", "587");
javaMailProperties.setProperty("mail.smtp.auth", "true");
javaMailProperties.setProperty("mail.smtp.starttls.enable", "true");
Измените хост, все будет хорошо.