ubuntu上面利用javax.mail寫的寄信程式,在系統自動升級jdk到 11.0.11 後,使用tls smtp寄信就失效了,經查是因為 jdk已禁用了 tls 1.0, tls 1.1,所以必須改強制使用 tls >= v1.2(很奇怪的點就是javax.mail握手時不會自動tls v1.2 or 1.3) ,當然你的mail server也要有支援 tls >= v1.2
props.setProperty("mail.smtp.host", "your.smtp.server");
props.setProperty("mail.smtp.auth", "true");
props.setProperty("mail.smtp.port", "587");
props.setProperty("mail.smtp.starttls.enable", "true");
props.setProperty("mail.smtp.ssl.protocols", "TLSv1.2"); //強制tls v1.2
Session session = Session.getDefaultInstance(props, new javax.mail.Authenticator() {
@Override
protected PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication("username", "password");
}
});
沒有留言:
張貼留言