gpt4 book ai didi

java - 获取 PKIX 路径构建失败

转载 作者:太空宇宙 更新时间:2023-11-04 10:31:02 24 4
gpt4 key购买 nike

我正在尝试使用java通过gmail发送邮件但我遇到了一些异常(exception)代码如下:

 public static void send_java_mail() throws IOException
{
System.out.println("\n\n\n\nIn send_java_mail");
String[] recipents=new String[10];
recipents[0]=email_id;//email_id;
//put your smtp details in the properties file.Following given are for gmail account

Properties smtp_properties =null;
smtp_properties = new Properties();
InputStream iss = new FileInputStream("D:\\Heat\\Web\\smtpconfig.properties");
smtp_properties.load(iss);


String e_mailbody="Hi\n\tYour Order has been Placed.It will deliever in 2 Days.\n\n\tYour Name :"+CustomerName+"\n\tYour Email Address :"+email_id+"\n\tYour Shipping Address :"+Addr+"\n\tYour Contact Number:"+Phone+"\n\tYour Total amount to be Pay is 3610.\nThanks.";
String host = smtp_properties.getProperty("host");
String mail_transport_protocol = smtp_properties.getProperty("mail.transport.protocol");
String mail_smtp_auth =smtp_properties.getProperty("mail.smtp.auth");
String mail_smtp_port = smtp_properties.getProperty("mail.smtp.port");
String mail_debug =smtp_properties.getProperty("mail.debug");
String mail_smtp_socketFactory_port =smtp_properties.getProperty("mail.smtp.socketFactory.port");
String mail_smtp_socketFactory_class =smtp_properties.getProperty("mail.smtp.socketFactory.class");
String mail_smtp_socketFactory_fallback = smtp_properties.getProperty("mail.smtp.socketFactory.fallback");

Properties props = System.getProperties();
System.out.println("mail transport protocol :"+mail_transport_protocol);
props.setProperty("mail.transport.protocol",mail_transport_protocol);
props.setProperty("mail.host", host);
props.put("mail.smtp.auth", mail_smtp_auth);
props.put("mail.smtp.port", mail_smtp_port);
props.put("mail.debug", mail_debug);
props.setProperty("mail.smtp.ssl.enable", "true");
props.put("mail.smtp.ssl.trust", "smtp.gmail.com");
props.put("mail.smtp.socketFactory.port", mail_smtp_socketFactory_port);
props.put("mail.smtp.socketFactory.class",mail_smtp_socketFactory_class);
props.put("mail.smtp.socketFactory.fallback", mail_smtp_socketFactory_fallback);

final String from="dhanshreeherballife@gmail.com";
final String pass="D@ny1996";

Session session = Session.getDefaultInstance(props, new javax.mail.Authenticator() {
protected PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication(from,pass);
}
});
MimeMessage message = new MimeMessage(session);

try {
message.setFrom(new InternetAddress(from));
InternetAddress[] toAddress = new InternetAddress[recipents.length];

toAddress[0] = new InternetAddress(recipents[0]);

message.addRecipient(Message.RecipientType.TO, toAddress[0]);


message.setSubject("Order");
message.setText(e_mailbody);
Transport transport = session.getTransport("smtp");

transport.connect(host, from, pass);
transport.sendMessage(message, message.getAllRecipients());
transport.close();
}
catch (AddressException ae) {
ae.printStackTrace();
}
catch (MessagingException me) {
me.printStackTrace();
}
}

异常情况如下:

DEBUG SMTP: exception reading response: javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
javax.mail.MessagingException: Exception reading response;
nested exception is:
javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
at com.sun.mail.smtp.SMTPTransport.readServerResponse(SMTPTransport.java:1090)
at com.sun.mail.smtp.SMTPTransport.openServer(SMTPTransport.java:986)
at com.sun.mail.smtp.SMTPTransport.protocolConnect(SMTPTransport.java:197)
at javax.mail.Service.connect(Service.java:233)
at javax.mail.Service.connect(Service.java:134)
at Servlets.Sendmail.send_java_mail(Sendmail.java:92)
at Servlets.PlaceOrder.doGet(PlaceOrder.java:64)
at Servlets.PlaceOrder.doPost(PlaceOrder.java:72)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:648)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:292)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:207)
at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:240)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:207)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:212)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:94)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:496)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:141)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:79)
at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:620)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:88)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:502)
at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1132)
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:684)
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1539)
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:1495)
at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
at java.lang.Thread.run(Unknown Source)

最佳答案

首先修复所有这些 common JavaMail mistakes .

JavaMail 常见问题解答有 more information on cert path errors 。如果您在连接到 Gmail 时遇到此错误,很可能是您的防火墙或防病毒产品拦截了连接并提供了自己的证书而不是 Gmail 证书。在使用上面链接中的任何技术禁用安全检查之前,您应该仔细考虑允许该软件监视您的连接的安全影响。

您还应该检查您的 JDK 安装是否配置错误或损坏。也许您的应用程序服务器正在覆盖 JDK 附带的 cacerts 文件(信任存储)。

关于java - 获取 PKIX 路径构建失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50001206/

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