簡易Javaメールクライアントは、SSL上で動作する電子メールサーバーで正常に動作しています。しかし、Spring JavaMailSenderImplクラスから使用された場合、同じサーバーは動作しません。また、thunderbirdはメールサーバーをうまく動作させます。しかし、春には問題があります。Spring JavaMailSenderImplがSSLと連携していません
正常に動作する元のJavaコードがここにあります。ここ
final String username = "[email protected]";
final String password = "password";
Properties props = new Properties();
props.put("mail.smtp.auth", "true");
props.put("mail.smtp.starttls.enable", "true");
props.put("mail.smtps.ssl.checkserveridentity", "true");
props.put("mail.smtps.ssl.trust", "*");
props.put("mail.smtp.host", "server.com");
props.put("mail.smtp.port", "587");
Session session = Session.getInstance(props,
new javax.mail.Authenticator() {
protected PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication(username, password);
}
});
try {
Message message = new MimeMessage(session);
message.setFrom(new InternetAddress("[email protected]"));
message.setRecipients( Message.RecipientType.TO,
InternetAddress.parse("[email protected]"));
message.setSubject("Testing Subject");
message.setText("Dear Mail Crawler, \n\n No spam to my email, please!");
Transport.send(message);
System.out.println("Done");
} catch (MessagingException e) {
throw new RuntimeException(e);
}
は、電子メールの設定が含まれているapplicationContext.xmlを、
<bean id="mailSender" class="org.springframework.mail.javamail.JavaMailSenderImpl">
<property name="javaMailProperties">
<props>
<prop key="mail.smtp.starttls.enable">true</prop>
<prop key="mail.smtp.auth">true</prop>
<prop key="mail.smtps.ssl.checkserveridentity">true</prop>
<prop key="mail.smtps.ssl.trust">*</prop>
</props>
</property>
<property name="username" value="[email protected]" />
<property name="password" value="password" />
<property name="port"><value>587</value></property>
<property name="protocol"><value>smtp</value></property>
<property name="host" value="server.com"/>
</bean>
春JavaMailSenderImplを設定するための正しい方法は何ですか?
ご協力いただければ幸いです。
smtpsとSTARTTLSを使用するようにJavaMailSenderImplを設定する方法の例として、実際には本当に便利です。それは、公式文書の不備を補うものです。 – Jimadilo