java邮件程序不再发送邮件了

时间:2018-03-29 21:35:19

标签: java

我有一个java程序,它会向用户发送邮件。自1周以来,邮件已不再发送。我没有改变任何东西,但现在我收到了这个错误:

connexion failed: Exception reading response;
  nested exception is:
    javax.net.ssl.SSLException: java.lang.RuntimeException: Could not generate DH keypair
Exception in thread "main" java.lang.RuntimeException: javax.mail.MessagingException: Exception reading response;
  nested exception is:
    javax.net.ssl.SSLException: java.lang.RuntimeException: Could not generate DH keypair
    at Launcher$Connexion.<init>(Launcher.java:33)
    at Launcher.main(Launcher.java:52)
Caused by: javax.mail.MessagingException: Exception reading response;
  nested exception is:
    javax.net.ssl.SSLException: java.lang.RuntimeException: Could not generate DH keypair
    at com.sun.mail.smtp.SMTPTransport.readServerResponse(SMTPTransport.java:1407)
    at com.sun.mail.smtp.SMTPTransport.openServer(SMTPTransport.java:1205)
    at com.sun.mail.smtp.SMTPTransport.protocolConnect(SMTPTransport.java:322)
    at javax.mail.Service.connect(Service.java:236)
    at javax.mail.Service.connect(Service.java:137)
    at Launcher$Connexion.<init>(Launcher.java:28)

我联系了fastmail(邮件服务器),他们说不安全的证书是自签名的,直到2021年才到期。

所以我不知道问题所在。

1 个答案:

答案 0 :(得分:1)

请将DH参数限制添加到目标服务器的证书中。应使用openssl dhparam指令生成并应用使用SSLCertificateFile命令的自定义DH参数。请注意,具有1024位素数的自定义DH参数将始终优先于任何内置DH参数。

您应该将Java版本更新到至少版本8,因为应该取消1024位限制以接受2048位参数。

请参阅:Java: Why does SSL handshake give 'Could not generate DH keypair' exception?