gpt4 book ai didi

java - 如何修复java中的 'Could not convert socket to TLS'错误

转载 作者:行者123 更新时间:2023-12-02 02:03:32 24 4
gpt4 key购买 nike

我正在使用 JavaMail API 发送包含文本文件的电子邮件。我上周编写的这段代码运行得很好,但是我今天登录并运行了该程序,并在底部附加的图像中收到了错误。我更新到了 java 8 的最新版本,但仍然收到此错误。 (我必须使用 java 8 进行项目工作)我查看了此更新的 java 8 补丁说明,并看到根 CA 证书被删除,我不知道该怎么想/做什么。我发布这个问题是因为我在其他大量与此相关的问题中找不到任何解决方案。

我正在运行 Java 8 (jre 1.8.0_221),之前运行的是 jre 1.8.0_211。我不知道发生了什么变化,因为它今天在 v.211 上停止工作,并且在我更新到最新版本的 Java 8 v.221 后也无法工作。我尝试过其他各种属性但没有成功。我不确定这是否是 Java 删除了特定的内容(我对此表示怀疑),或者是否与防火墙权限(我可能拥有或没有的任何 smtp 权限有关)有关。无论如何,电子邮件发送部分的代码如下,代码在 Transport.send(message); 处失败,并出现错误“无法将套接字转换为 TLS”

                Properties props = new Properties();
props.put("mail.smtp.auth", "true");
props.put("mail.smtp.starttls.enable", "true");
props.put("mail.smtp.host", host);
props.put("mail.smtp.port", "25");
props.put("mail.smtp.debug", "true");

Session session = Session.getInstance(props, new javax.mail.Authenticator() {
protected PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication(smtpUsername, u2);
}
});

try {
Message message = new MimeMessage(session);
message.setFrom(new InternetAddress(from));
message.setRecipients(Message.RecipientType.TO, InternetAddress.parse(to));
message.setSubject(prop.getProperty("Message"));

BodyPart messageBodyPart = new MimeBodyPart();
messageBodyPart.setText(prop.getProperty("Message"));

Multipart multipart = new MimeMultipart();
multipart.addBodyPart(messageBodyPart);

messageBodyPart = new MimeBodyPart();
DataSource source = new FileDataSource(prop.getProperty("text") + ".txt");
messageBodyPart.setDataHandler(new DataHandler(source));
messageBodyPart.setFileName(prop.getProperty("filename"));
multipart.addBodyPart(messageBodyPart);

message.setContent(multipart);

Transport.send(message);
System.out.println("Sent successfully.\n");

Error Message我正在接收。希望我已经解释得足够彻底了。这只是我在这里问的第二个问题。感谢任何帮助,谢谢。

最佳答案

我不是专家,但是...

2019 年 4 月,或每当在您的环境中应用某些根证书时,您可能会受到故意不信任的影响(回复: https://blogs.oracle.com/java-platform-group/jdk-distrusting-symantec-tls-certificates )。

关于java - 如何修复java中的 'Could not convert socket to TLS'错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57365343/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com