Office365からjavax.mail (1.4.4)
を使用してメールを送信するためのSMTP設定を構成するのに問題があるため、他の人のためにここにプロパティを投稿すると思いました。
以下のようにOffice365のSMTP詳細を使用します。
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"); } }); }
そして、スプリングブートでは、これを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
実際のコード例:
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();
}
私があなたのコードで気づいている唯一のエラーは間違ったホストです
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");
あなたがすべて良いホストを変更します。