当前位置: 首页 > 知识库问答 >
问题:

Javamail无法将套接字转换为TLS GMail

翟沈义
2023-03-14

我正在尝试通过Gmail SMTP服务器使用JavaMail发送电子邮件。代码如下:

final String username = "mygmail@gmail.com";
final String password = "mygmailpassword";

Properties props = new Properties();
props.put("mail.smtp.auth", true);
props.put("mail.smtp.starttls.enable", true);
props.put("mail.smtp.host", "smtp.gmail.com");
props.put("mail.smtp.port", "587");

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

try {
    Message message = new MimeMessage(session);
    message.setFrom(new InternetAddress("no-reply@gmail.com"));
    message.setRecipients(Message.RecipientType.TO,
                        InternetAddress.parse("test@gmail.com"));
    message.setSubject("Testing Subject");
    message.setText("Dear Mail Crawler," + "\n\n No spam to my email, please!");
    Transport.send(message);
    System.out.println("Done");
} catch (MessagingException e) {
    throw new RuntimeException(e);
}

返回此错误:

无法将套接字转换为TLS;

完整的堆栈跟踪:

异常线程"main"javax.mail.RuntimeException:ervice.connectMessagingException:无法将套接字转换为TLS;嵌套异常是:ervice.java:176SSLHandshakeException:sun.security.validator.ValidatorException: PKIX路径构建失败:sun.security.provider.certpath.SunCertPathBuilderException:无法找到有效的认证路径到请求的目标在Test.main(Tjavax.mail.)原因:ransport.sendMessagingException:无法将套接字转换为TLS;嵌套异常是:ransport.java:194SSLHandshakeException:javax.mail.ValidatorException: PKIX路径构建失败:ransport.sendSunCertPathBuilderException:无法找到有效的认证路径到请求的目标在ransport.java:124SMTPTest.mainTLS(SMTPTransport.java:1907)在com.sun.mail.smtp.SMTPTransport.protocolConnect(SMTPTransport.java:666)在javax.mail.Service.connect(Service.java:317)在java.lang.Sjavax.mail.(Sjavax.net.ssl.)在est.java:43Tjavax.mail.0(Tjavax.net.ssl.)在sun.security.validator.Tsun.security.provider.certpath.(Tcom.sun.mail.smtp.)在Transport.start(Test. java: 38)原因: javax. net. sssl. SSLHandshakeExceptionValidatorException:PKIX路径构建失败:sun. security. Provider. certpath。SunCertPathBuilderException:无法在com. sun. net. ssl.内在. ssl找到请求目标的有效认证路径。com. sun. net. ssl.内在. ssl的警报. getSSLException(Alerts. java: 174)。SSLSocketInp.致命的(SSLSocketInp. java: 1649)在com. sun. net. ssl.内在. sl。Handshaker.致命的(Handshaker. java: 241)在com. sun. net. ssl.内在. sl。Handshaker.致命的(Handshaker. java: 235)在com. sun. net. ssl.内在. ssl。ClientHandshaker. server证书(ClientHandshaker. java: 1206)在com. sun. net. slal. ssl。ClientHandshaker. Process消息(ClientHandshaker. jPKIXValidator. doBuild(PKIXValidator. java: 323)在sun. security. validator。PKIXValidator.工程验证(PKIXValidator. java: 217)在sun. security. validator. validator。验证(Validator. java: 218)在com. sun. net. ssl. interal. ssl。X509TrustManagerInp。验证(X509TrustManagerInp. java: 126)在com. sun. net. ssl. interl. ssl。X509TrustManagerInp. check ServerTrusted(X509TrustManagerInp. java: 209)在com. sun. net. ssl. interal. ssl。客户握手服务器

共有3个答案

阳文轩
2023-03-14

确保防病毒程序没有干扰,并确保在防火墙中添加排除。

阮阳曦
2023-03-14

我禁用了avast antivirus 10分钟,并使其正常工作。

章昱
2023-03-14
props.put("mail.smtp.ssl.trust", "smtp.gmail.com");
 类似资料:
  • 我用Javax发送邮件有问题。我们使用gmail大约4年了,用我们的Java软件发送邮件。现在我得到了以下错误: 以下是我的gmail设置: 我还尝试了其他邮件服务器(O365、Strato),但收到了相同的错误。

  • 我收到了错误:org.springframework.mail。MailSendException:邮件服务器连接失败;嵌套的异常是javax.mail。MessaginException:无法将套接字转换为TLS;嵌套的异常是:javax.net.ssl。SSLHandshakeException:没有合适的协议(协议被禁用或密码套件不合适)。失败的消息:javax.mail。MessaginE

  • 我有另一个转换套接字异常。Stackoverflow将我和相关答案联系起来,我已经做了人们建议的所有事情。 这里有异常描述: 线程“main”javax中出现异常。邮政MessaginException:无法将套接字转换为TLS;嵌套的例外是:java。网SocketException:java。安全NoSuchAlgorithmException:在com上构造实现时出错(算法:Default,

  • 在一个应用程序中,我使用java实现了邮件发送逻辑。我使用了smtp.gmail。com587端口,具有有效的gmail id和密码。在开发环境中,一切正常。但在生产环境中,我需要使用不同的邮件服务器,例如smtp.xyz。在端口25上输入有效的电子邮件id和密码。 当我继续使用以下代码启用SSL时: 我出错了

  • 我想通过单击JFrame netbeans中的按钮将邮件从我的电子邮件地址发送到另一个电子邮件地址。这是代码, 但它给了我以下错误, javax.mail.MessagingException:无法将套接字转换为TLS;嵌套异常是:java.io.lOException:使用SSL套接字工厂类启动TLS中的异常null: host, portsmtp.gmail.com,587;异常:java.l

  • 我在使用Apache Commons Mail连接到SMTP服务器时遇到问题。我已经尝试了所有方法,但我唯一能在网上找到的是Java邮件。这是我的错误: 原因:javax.mail.MessagingException:无法将套接字转换为TLS;嵌套异常是:javax.net.ssl.SSLHandshakeException:sun.security.validator.ValidatorExc