Подтвердить что ты не робот

Отправить javamail с помощью Office365

У меня возникли проблемы с настройкой параметров SMTP для отправки почты с помощью javax.mail (1.4.4) через Office365, поэтому я решил опубликовать свойства здесь для других.

4b9b3361

Ответ 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");

Измените хост, все будет хорошо.