Отправить почту через Java API для Office 365 - PullRequest
0 голосов
/ 24 апреля 2020

Привет, я в настоящее время разрабатываю приложение java, которое будет отправлять почту нескольким получателям через Java Mail Api (1.6.2), я настроил SMTP согласно проблеме с документами Microsoft, если код работает с моим личным идентификатор электронной почты hotmail, но он не работает для учетной записи корпоративного офиса 365.

Ошибка: javax.mail.AuthenticationFailedException: 535 5.7.3 Аутентификация не удалась [PN1PR0101CA0066.INDPRD01.PROD.OUTLOOK.COM]

POP и IMAP работают (получение почты), и я могу войти с паролем в Office 365 Web, я тоже пытался сменить пароль.

Код:

User user = Credentials.ACC;
Properties props = new Properties();
props.put("mail.smtp.host", "smtp.office365.com");//outlook.office365.com
props.put("mail.smtp.auth", "true");
props.put("mail.smtp.port", "587");//25
props.put("mail.smtp.starttls.enable", "true");
props.put("mail.transport.protocol", "smtp");
//props.put("mail.smtp.ssl.enable", true);

Session session = Session.getInstance(props, new Authenticator() {
    @Override
    protected PasswordAuthentication getPasswordAuthentication() {
        return new PasswordAuthentication(user.getUsername(), user.getPassword());
    }
});
session.setDebug(true);

try {
    MimeMessage msg = new MimeMessage(session);
    msg.setFrom(user.getUsername());

    msg.setRecipients(Message.RecipientType.TO,
            "some@mail.com");
    msg.setSubject("Testing SMTP using [" + user.getUsername() + "]");
    msg.setSentDate(new Date());
    msg.setText("Hey, this is a test from [" + user.getUsername() + "], Sending via Java Mail API");

    Transport.send(msg);
    System.out.println("Sent Ok");
} catch (MessagingException e) {
    System.out.println("Something went wrong");
    e.printStackTrace();
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...