java邮件api(1.5.3)在最近的jre1.8.25中不起作用

java邮件api(1.5.3)在最近的jre1.8.25中不起作用,java,jakarta-mail,Java,Jakarta Mail,im使用javamail在应用程序中发送邮件。一切正常。但当我将运行时更改为jre1.8.25时,我得到了如下异常: nested exception is: javax.net.ssl.SSLKeyException: RSA premaster secret error at com.sun.mail.smtp.SMTPTransport.openServer(SMTPTransport.java:2056) at com.sun.mail.smtp.SMTPTran

im使用javamail在应用程序中发送邮件。一切正常。但当我将运行时更改为jre1.8.25时,我得到了如下异常:

nested exception is:
    javax.net.ssl.SSLKeyException: RSA premaster secret error
    at com.sun.mail.smtp.SMTPTransport.openServer(SMTPTransport.java:2056)
    at com.sun.mail.smtp.SMTPTransport.protocolConnect(SMTPTransport.java:697)
    at javax.mail.Service.connect(Service.java:364)
    at MainClass.main(MainClass.java:44)
Caused by: javax.net.ssl.SSLKeyException: RSA premaster secret error
    at sun.security.ssl.RSAClientKeyExchange.<init>(RSAClientKeyExchange.java:86)
    at sun.security.ssl.ClientHandshaker.serverHelloDone(ClientHandshaker.java:880)
    at sun.security.ssl.ClientHandshaker.processMessage(ClientHandshaker.java:344)
    at sun.security.ssl.Handshaker.processLoop(Handshaker.java:936)
    at sun.security.ssl.Handshaker.process_record(Handshaker.java:871)
    at sun.security.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:1043)
    at sun.security.ssl.SSLSocketImpl.performInitialHandshake(SSLSocketImpl.java:1343)
    at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1371)
    at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1355)
    at com.sun.mail.util.SocketFetcher.configureSSLSocket(SocketFetcher.java:574)
    at com.sun.mail.util.SocketFetcher.createSocket(SocketFetcher.java:369)
    at com.sun.mail.util.SocketFetcher.getSocket(SocketFetcher.java:236)
    at com.sun.mail.smtp.SMTPTransport.openServer(SMTPTransport.java:2020)
    ... 3 more
Caused by: java.security.NoSuchAlgorithmException: SunTlsRsaPremasterSecret KeyGenerator not available
    at javax.crypto.KeyGenerator.<init>(KeyGenerator.java:158)
    at javax.crypto.KeyGenerator.getInstance(KeyGenerator.java:207)
    at sun.security.ssl.JsseJce.getKeyGenerator(JsseJce.java:272)
    at sun.security.ssl.RSAClientKeyExchange.<init>(RSAClientKeyExchange.java:77)
    ... 15 more
注意:我只使用最新版本的javamail api。

确保类路径上有正确的sunjce_provider.jar。如果它位于$JAVA_HOME/lib/ext/中,那么JAVA应该自动找到它

另见:


也许你的钥匙链中有不同的条目?据我所知,它依赖于jvm。