Customer configuring a new email relay being configured with TLS and a certificate provided by the customer.
Emails remain in "mail_queue" folder
Maileater_nxd.log
2022-01-03 08:50:47:126 ERROR [mailNxdActorSystem-akka.actor.default-dispatcher-31] c.c.S.m.NXJavaMailMailer - The transport is not connected or is dead.
javax.mail.MessagingException: Could not convert socket to TLS
at com.sun.mail.smtp.SMTPTransport.startTLS(SMTPTransport.java:2140)
at com.sun.mail.smtp.SMTPTransport.protocolConnect(SMTPTransport.java:734)
at javax.mail.Service.connect(Service.java:342)
at com.ca.ServicePlus.mail.connection.JavaMailSMTPClient.sendMessage(JavaMailSMTPClient.java:279)
at com.ca.ServicePlus.mail.connection.JavaMailSMTPClient.sendMail(JavaMailSMTPClient.java:369)
at com.ca.ServicePlus.mailer.NXJavaMailMailer.sendMailToMailServer(NXJavaMailMailer.java:154)
at com.ca.ServicePlus.mailer.NXMailMailerActor.lambda$createReceive$1(NXMailMailerActor.java:116)
at akka.japi.pf.UnitCaseStatement.apply(CaseStatements.scala:24)
at akka.japi.pf.UnitCaseStatement.apply(CaseStatements.scala:20)
at scala.PartialFunction.applyOrElse(PartialFunction.scala:189)
at scala.PartialFunction.applyOrElse$(PartialFunction.scala:188)
at akka.japi.pf.UnitCaseStatement.applyOrElse(CaseStatements.scala:20)
at scala.PartialFunction$OrElse.applyOrElse(PartialFunction.scala:246)
at scala.PartialFunction$OrElse.applyOrElse(PartialFunction.scala:247)
at akka.actor.Actor.aroundReceive(Actor.scala:539)
at akka.actor.Actor.aroundReceive$(Actor.scala:537)
at akka.actor.AbstractActor.aroundReceive(AbstractActor.scala:227)
at akka.actor.ActorCell.receiveMessage(ActorCell.scala:612)
at akka.actor.ActorCell.invoke(ActorCell.scala:581)
at akka.dispatch.Mailbox.processMailbox(Mailbox.scala:268)
at akka.dispatch.Mailbox.run(Mailbox.scala:229)
at akka.dispatch.Mailbox.exec(Mailbox.scala:241)
at akka.dispatch.forkjoin.ForkJoinTask.doExec(ForkJoinTask.java:260)
at akka.dispatch.forkjoin.ForkJoinPool$WorkQueue.runTask(ForkJoinPool.java:1339)
at akka.dispatch.forkjoin.ForkJoinPool.runWorker(ForkJoinPool.java:1979)
at akka.dispatch.forkjoin.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:107)
Caused by: javax.net.ssl.SSLHandshakeException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
at java.base/sun.security.ssl.Alert.createSSLException(Alert.java:131)
at java.base/sun.security.ssl.TransportContext.fatal(TransportContext.java:321)
at java.base/sun.security.ssl.TransportContext.fatal(TransportContext.java:264)
at java.base/sun.security.ssl.TransportContext.fatal(TransportContext.java:259)
at java.base/sun.security.ssl.CertificateMessage$T12CertificateConsumer.checkServerCerts(CertificateMessage.java:642)
at java.base/sun.security.ssl.CertificateMessage$T12CertificateConsumer.onCertificate(CertificateMessage.java:461)
at java.base/sun.security.ssl.CertificateMessage$T12CertificateConsumer.consume(CertificateMessage.java:361)
at java.base/sun.security.ssl.SSLHandshake.consume(SSLHandshake.java:392)
at java.base/sun.security.ssl.HandshakeContext.dispatch(HandshakeContext.java:448)
at java.base/sun.security.ssl.HandshakeContext.dispatch(HandshakeContext.java:425)
at java.base/sun.security.ssl.TransportContext.dispatch(TransportContext.java:178)
at java.base/sun.security.ssl.SSLTransport.decode(SSLTransport.java:164)
at java.base/sun.security.ssl.SSLSocketImpl.decode(SSLSocketImpl.java:1152)
at java.base/sun.security.ssl.SSLSocketImpl.readHandshakeRecord(SSLSocketImpl.java:1063)
at java.base/sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:402)
at com.sun.mail.util.SocketFetcher.configureSSLSocket(SocketFetcher.java:602)
at com.sun.mail.util.SocketFetcher.startTLS(SocketFetcher.java:529)
at com.sun.mail.smtp.SMTPTransport.startTLS(SMTPTransport.java:2135)
... 25 common frames omitted
Caused by: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
at java.base/sun.security.validator.PKIXValidator.doBuild(PKIXValidator.java:385)
at java.base/sun.security.validator.PKIXValidator.engineValidate(PKIXValidator.java:290)
at java.base/sun.security.validator.Validator.validate(Validator.java:264)
at java.base/sun.security.ssl.X509TrustManagerImpl.validate(X509TrustManagerImpl.java:321)
at java.base/sun.security.ssl.X509TrustManagerImpl.checkTrusted(X509TrustManagerImpl.java:221)
at java.base/sun.security.ssl.X509TrustManagerImpl.checkServerTrusted(X509TrustManagerImpl.java:129)
at java.base/sun.security.ssl.CertificateMessage$T12CertificateConsumer.checkServerCerts(CertificateMessage.java:626)
... 38 common frames omitted
Caused by: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
at java.base/sun.security.provider.certpath.SunCertPathBuilder.build(SunCertPathBuilder.java:141)
at java.base/sun.security.provider.certpath.SunCertPathBuilder.engineBuild(SunCertPathBuilder.java:126)
at java.base/java.security.cert.CertPathBuilder.build(CertPathBuilder.java:297)
at java.base/sun.security.validator.PKIXValidator.doBuild(PKIXValidator.java:380)
... 44 common frames omitted
2022-01-03 08:50:47:126 DEBUG 13:50:46.741UTC [mailNxdActorSystem-akka.actor.default-dispatcher-28] c.c.S.m.MessageProcessorChildActor - Starting child actor instance hashcode #210645728
2022-01-03 08:50:47:126 DEBUG [mailNxdActorSystem-akka.actor.default-dispatcher-34] c.c.S.m.MessageProcessorActorSystem - Remove mail queue file (Mail_6392_98.req) from in-progress list as processing is completed.
2022-01-03 08:50:47:126 DEBUG 13:50:46.741UTC [mailNxdActorSystem-akka.actor.default-dispatcher-28] c.c.S.m.MessageProcessorMasterActor - Should restart the child actor.
2022-01-03 08:50:47:127 WARN [mailNxdActorSystem-akka.actor.default-dispatcher-34] c.c.S.m.c.PDMMailerUtil - Null Message received or message is already written to file.
2022-01-03 08:50:47:127 ERROR 13:50:46.741UTC [mailNxdActorSystem-akka.actor.default-dispatcher-28] a.actor.OneForOneStrategy - Failed to send the mail after trying with all the mail hosts.
javax.mail.SendFailedException: Failed to send the mail after trying with all the mail hosts.
at com.ca.ServicePlus.mailer.NXJavaMailMailer.sendMailToMailServer(NXJavaMailMailer.java:179)
at com.ca.ServicePlus.mailer.NXMailMailerActor.lambda$createReceive$1(NXMailMailerActor.java:116)
at akka.japi.pf.UnitCaseStatement.apply(CaseStatements.scala:24)
at akka.japi.pf.UnitCaseStatement.apply(CaseStatements.scala:20)
at scala.PartialFunction.applyOrElse(PartialFunction.scala:189)
at scala.PartialFunction.applyOrElse$(PartialFunction.scala:188)
at akka.japi.pf.UnitCaseStatement.applyOrElse(CaseStatements.scala:20)
at scala.PartialFunction$OrElse.applyOrElse(PartialFunction.scala:246)
at scala.PartialFunction$OrElse.applyOrElse(PartialFunction.scala:247)
at akka.actor.Actor.aroundReceive(Actor.scala:539)
at akka.actor.Actor.aroundReceive$(Actor.scala:537)
at akka.actor.AbstractActor.aroundReceive(AbstractActor.scala:227)
at akka.actor.ActorCell.receiveMessage(ActorCell.scala:612)
at akka.actor.ActorCell.invoke(ActorCell.scala:581)
at akka.dispatch.Mailbox.processMailbox(Mailbox.scala:268)
at akka.dispatch.Mailbox.run(Mailbox.scala:229)
at akka.dispatch.Mailbox.exec(Mailbox.scala:241)
at akka.dispatch.forkjoin.ForkJoinTask.doExec(ForkJoinTask.java:260)
at akka.dispatch.forkjoin.ForkJoinPool$WorkQueue.runTask(ForkJoinPool.java:1339)
at akka.dispatch.forkjoin.ForkJoinPool.runWorker(ForkJoinPool.java:1979)
at akka.dispatch.forkjoin.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:107)
Release : 17.3
Component : SDM - In-bound/Out-bound Mail
We saw a new strict enforcement of TLS from Gmail.
This previously worked correctly.
In order to restore functionality, we had to modify JavaMailSMTPClient.java to trust the host and connect using TLS 1.2.
If a customer suspects they find this issue, please open a support case and have Support check if this matches DE61365
For information about Mail Notification connection problems, please see this link.