【解决方法】
使用2018 Summer(tiffany)及之后版本的情况下,通过进行以下的SSL协议设置可以实现。
如下所示,在http://www.intra-mart.jp/document/library/iap/public/configuration/im_configuration_reference/texts/im_javamail/javamail-config/index.html#javamail-config_protocol
WEB-INF/conf/javamail-config/javamail-config.xml中添加protocol。
<smtps enable="true" starttls="false">
<protocols>
<protocol>TLSv1.2</protocol>
</protocols>
</smtps>
使用2018 Spring(Skylark)及之前版本的情况下,通过进行以下的监听器设置可以实现。
通过进行以下的监听器设置可以实现。
https://www.intra-mart.jp/document/library/iap/public/configuration/im_configuration_reference/texts/im_javamail/javamail-config/index.html#%E3%83%AA%E3%82%B9%E3%83%8A%E8%A8%AD%E5%AE%9A
例
1.如下所示,在WEB-INF/conf/javamail-config/javamail-config.xml中添加listener-class。
<listener>
<listener-class>jp.co.intra_mart.foundation.mail.javamail.listener.impl.HalfKanaTransrateListener</listener-class>
<listener-class>jp.co.intra_mart.example.ExampleJavaMailListener</listener-class> <!-- added -->
</listener>
2. 实现监听器。
package jp.co.intra_mart.example;
import java.util.Properties;
import javax.mail.Session;
import jp.co.intra_mart.foundation.mail.MailSenderException;
import jp.co.intra_mart.foundation.mail.javamail.listener.MailSendEvent;
import jp.co.intra_mart.foundation.mail.javamail.listener.MailSendListener;
public class ExampleJavaMailListener implements MailSendListener {
@Override
public int onSendMail(final MailSendEvent event) throws MailSenderException {
final Session session = event.getSession();
final Properties properties = session.getProperties();
仅使用properties.put("mail.smtp.ssl.protocols", "TLSv1.2"); // TLS 1.2。如果无法通过TLS 1.2进行通信,则发生错误。可以像"TLSv1.1 TLSv1.2"一样,通过分隔空格指定多个。(从左边第一个协议开始依次使用。第一个无法使用时,将使用第二个协议)
return MailSendListener.CONTINUE;
}
}
-- 适用对象 ----------------------------------------------------------------
iAP/Accel Platform
--------------------------------------------------------------------------------
FAQID:681
是否可以将发送邮件时的通信仅设置为TLS 1.2?