Код: Выделить всё
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;
< /blockquote>
Полная трассировка стека:
Исключение в «основном» потоке java.lang.RuntimeException: javax.mail.MessagingException: Не удалось преобразовать сокет в TLS;
вложенное исключение:
javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: не удалось построить путь PKIX: sun.security.provider.certpath.SunCertPathBuilderException: невозможно найти действительный путь сертификации к запрошенной цели
в Test.main(Test.java:43)
Причина: javax.mail.MessagingException: не удалось преобразовать сокет в TLS;
вложенное исключение такое:
javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: не удалось построить путь PKIX: sun.security.provider.certpath.SunCertPathBuilderException: невозможно найти действительный путь сертификации к запрошенной цели
в com.sun.mail.smtp.SMTPTransport.startTLS(SMTPTransport.java:1907)
в com.sun.mail.smtp.SMTPTransport.protocolConnect(SMTPTransport.java:666)
в javax.mail .Service.connect(Service.java:317)
в javax.mail.Service.connect(Service.java:176)
в javax.mail.Service.connect(Service.java:125)в javax.mail.Transport.send0(Transport.java:194)
в javax.mail.Transport.send(Transport.java:124)
в Test.main(Test.java: 38)
Вызвано: javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: не удалось построить путь PKIX: sun.security.provider.certpath.SunCertPathBuilderException: невозможно найти действительный путь сертификации к запрошенной целиat com.sun.net.ssl.internal.ssl.Alerts.getSSLException(Alerts.java:174)
at com.sun.net.ssl.internal.ssl.SSLSocketImpl.fatal(SSLSocketImpl.java) :1649)
на com.sun.net.ssl.internal.ssl.Handshaker.fatalSE(Handshaker.java:241)
на com.sun.net.ssl.internal.ssl.Handshaker.fatalSE (Handshaker.java:235)
на com.sun.net.ssl.internal.ssl.ClientHandshaker.serverCertificate(ClientHandshaker.java:1206)
на com.sun.net.ssl.internal.ssl .ClientHandshaker.processMessage(ClientHandshaker.java:136)
на com.sun.net.ssl.internal.ssl.Handshaker.processLoop(Handshaker.java:593)
на com.sun.net.ssl .internal.ssl.Handshaker.process_record(Handshaker.java:529)
на com.sun.net.ssl.internal.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:893)
на com.sun .net.ssl.internal.ssl.SSLSocketImpl.performInitialHandshake(SSLSocketImpl.java:1138)
на com.sun.net.ssl.internal.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1165)
на com.sun.net.ssl.internal.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1149)
на com.sun.mail.util.SocketFetcher.configureSSLSocket(SocketFetcher.java:549)
на com.sun.mail.util.SocketFetcher.startTLS(SocketFetcher.java:486)
на com.sun.mail.smtp.SMTPTransport.startTLS(SMTPTransport.java:1902)
... 7 подробнее
Вызвано: sun.security.validator.ValidatorException: не удалось построить путь PKIX: sun.security.provider.certpath.SunCertPathBuilderException: невозможно найти действительный путь сертификации к запрошенной цели
в sun.security.validator .PKIXValidator.doBuild(PKIXValidator.java:323)
на sun.security.validator.PKIXValidator.engineValidate(PKIXValidator.java:217)
на sun.security.validator.Validator.validate(Validator.java) :218)
на com.sun.net.ssl.internal.ssl.X509TrustManagerImpl.validate(X509TrustManagerImpl.java:126)
на com.sun.net.ssl.internal.ssl.X509TrustManagerImpl.checkServerTrusted (X509TrustManagerImpl.java:209)
на com.sun.net.ssl.internal.ssl.X509TrustManagerImpl.checkServerTrusted(X509TrustManagerImpl.java:249)
на com.sun.net.ssl.internal.ssl .ClientHandshaker.serverCertificate(ClientHandshaker.java:1185)
... еще 17
Вызвано: sun.security.provider.certpath.SunCertPathBuilderException: невозможно найти действительный путь сертификации к запрошенной цели
в sun.security.provider.certpath.SunCertPathBuilder.engineBuild(SunCertPathBuilder.java:174)
в java.security.cert.CertPathBuilder.build(CertPathBuilder.java:238)
в sun.security.validator .PKIXValidator.doBuild(PKIXValidator.java:318)
... еще 23
Подробнее здесь: https://stackoverflow.com/questions/161 ... -tls-gmail