2021-05-05

升級JDK 11.0.11後,無法正常使用TLS寄信

 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");

              }

            });

沒有留言:

張貼留言