Error when sending test mail (OD-67)
bufferUnderrun opened 6 years ago

My config is simple : port 25 without ssl and auth. When sending the test mail, an error is thrown

2020-02-21 08:40:06,871 ERROR [pool-2-thread-1] i.o.s.w.c.taskbutton.TaskButton Error sending test mail
java.lang.RuntimeException: org.apache.commons.mail.EmailException: Sending the email to the following server failed : smtp-in.mairie.ville-troyes.fr:25
	at io.onedev.server.notification.DefaultMailManager.sendMail(DefaultMailManager.java:114) ~[io.onedev.server-core-3.0.7.jar:na]
	at io.onedev.server.web.page.admin.mailsetting.MailSettingPage$2.runTask(MailSettingPage.java:70) ~[io.onedev.server-core-3.0.7.jar:na]
	at io.onedev.server.web.component.taskbutton.TaskButton$1.call(TaskButton.java:82) ~[io.onedev.server-core-3.0.7.jar:na]
	at io.onedev.server.web.component.taskbutton.TaskButton$1.call(TaskButton.java:74) ~[io.onedev.server-core-3.0.7.jar:na]
	at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264) ~[na:na]
	at io.onedev.server.util.SecurityUtils$1.run(SecurityUtils.java:319) ~[io.onedev.server-core-3.0.7.jar:na]
	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) ~[na:na]
	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) ~[na:na]
	at java.base/java.lang.Thread.run(Thread.java:830) ~[na:na]
Caused by: org.apache.commons.mail.EmailException: Sending the email to the following server failed : smtp-in.mairie.ville-troyes.fr:25
	at org.apache.commons.mail.Email.sendMimeMessage(Email.java:1421) ~[org.apache.commons.commons-email-1.4.jar:1.4]
	at org.apache.commons.mail.Email.send(Email.java:1448) ~[org.apache.commons.commons-email-1.4.jar:1.4]
	at io.onedev.server.notification.DefaultMailManager.sendMail(DefaultMailManager.java:112) ~[io.onedev.server-core-3.0.7.jar:na]
	... 8 common frames omitted
Caused by: javax.mail.MessagingException: Could not convert socket to TLS
	at com.sun.mail.smtp.SMTPTransport.startTLS(SMTPTransport.java:1999) ~[com.sun.mail.javax.mail-1.5.2.jar:1.5.2]
	at com.sun.mail.smtp.SMTPTransport.protocolConnect(SMTPTransport.java:709) ~[com.sun.mail.javax.mail-1.5.2.jar:1.5.2]
	at javax.mail.Service.connect(Service.java:364) ~[com.sun.mail.javax.mail-1.5.2.jar:1.5.2]
	at javax.mail.Service.connect(Service.java:245) ~[com.sun.mail.javax.mail-1.5.2.jar:1.5.2]
	at javax.mail.Service.connect(Service.java:194) ~[com.sun.mail.javax.mail-1.5.2.jar:1.5.2]
	at javax.mail.Transport.send0(Transport.java:253) ~[com.sun.mail.javax.mail-1.5.2.jar:1.5.2]
	at javax.mail.Transport.send(Transport.java:124) ~[com.sun.mail.javax.mail-1.5.2.jar:1.5.2]
	at org.apache.commons.mail.Email.sendMimeMessage(Email.java:1411) ~[org.apache.commons.commons-email-1.4.jar:1.4]
	... 10 common frames omitted
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) ~[na:na]
	at java.base/sun.security.ssl.TransportContext.fatal(TransportContext.java:324) ~[na:na]
	at java.base/sun.security.ssl.TransportContext.fatal(TransportContext.java:267) ~[na:na]
	at java.base/sun.security.ssl.TransportContext.fatal(TransportContext.java:262) ~[na:na]
	at java.base/sun.security.ssl.CertificateMessage$T12CertificateConsumer.checkServerCerts(CertificateMessage.java:645) ~[na:na]
	at java.base/sun.security.ssl.CertificateMessage$T12CertificateConsumer.onCertificate(CertificateMessage.java:464) ~[na:na]
	at java.base/sun.security.ssl.CertificateMessage$T12CertificateConsumer.consume(CertificateMessage.java:360) ~[na:na]
	at java.base/sun.security.ssl.SSLHandshake.consume(SSLHandshake.java:396) ~[na:na]
	at java.base/sun.security.ssl.HandshakeContext.dispatch(HandshakeContext.java:444) ~[na:na]
	at java.base/sun.security.ssl.HandshakeContext.dispatch(HandshakeContext.java:422) ~[na:na]
	at java.base/sun.security.ssl.TransportContext.dispatch(TransportContext.java:181) ~[na:na]
	at java.base/sun.security.ssl.SSLTransport.decode(SSLTransport.java:164) ~[na:na]
	at java.base/sun.security.ssl.SSLSocketImpl.decode(SSLSocketImpl.java:1460) ~[na:na]
	at java.base/sun.security.ssl.SSLSocketImpl.readHandshakeRecord(SSLSocketImpl.java:1368) ~[na:na]
	at java.base/sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:437) ~[na:na]
	at com.sun.mail.util.SocketFetcher.configureSSLSocket(SocketFetcher.java:543) ~[com.sun.mail.javax.mail-1.5.2.jar:1.5.2]
	at com.sun.mail.util.SocketFetcher.startTLS(SocketFetcher.java:480) ~[com.sun.mail.javax.mail-1.5.2.jar:1.5.2]
	at com.sun.mail.smtp.SMTPTransport.startTLS(SMTPTransport.java:1994) ~[com.sun.mail.javax.mail-1.5.2.jar:1.5.2]
	... 17 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:438) ~[na:na]
	at java.base/sun.security.validator.PKIXValidator.engineValidate(PKIXValidator.java:305) ~[na:na]
	at java.base/sun.security.validator.Validator.validate(Validator.java:264) ~[na:na]
	at java.base/sun.security.ssl.X509TrustManagerImpl.checkTrusted(X509TrustManagerImpl.java:231) ~[na:na]
	at java.base/sun.security.ssl.X509TrustManagerImpl.checkServerTrusted(X509TrustManagerImpl.java:132) ~[na:na]
	at java.base/sun.security.ssl.CertificateMessage$T12CertificateConsumer.checkServerCerts(CertificateMessage.java:629) ~[na:na]
	... 30 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) ~[na:na]
	at java.base/sun.security.provider.certpath.SunCertPathBuilder.engineBuild(SunCertPathBuilder.java:126) ~[na:na]
	at java.base/java.security.cert.CertPathBuilder.build(CertPathBuilder.java:297) ~[na:na]
	at java.base/sun.security.validator.PKIXValidator.doBuild(PKIXValidator.java:433) ~[na:na]
	... 35 common frames omitted
2020-02-21 08:40:06,871 WARN  [pool-2-thread-1] i.o.s.w.c.taskbutton.TaskButton !!! You probably need to download Oracle JCE unlimited strength policy package for your JVM version, and place extracted jar files into security directory of your JVM to overwrite existing files, followed by restarting OneDev

In DefaultMailManager.java TLS is enabled by default ?

email.setStartTLSEnabled(true);
  • Robin Shen commented 6 years ago

    This tells OneDev to accept TLS upon login if email server suggests to do so. You may either configure your email server to disable TLS, or configure your email server to use a well-known certificate, or import certificate of your mail server into JVM used by OneDev.

  • Robin Shen changed state to 'Invalid' 6 years ago
    Previous Value Current Value
    Open
    Invalid
  • Robin Shen commented 6 years ago

    Not a bug from my opinion

  • bufferUnderrun commented 6 years ago

    Hi,

    Maybe i not pointed to the correct source of error but my mail server listen to port 25 without SSL. So the problem still here.

  • Robin Shen commented 6 years ago

    Looks like that at protocol negotiation stage, your mail server states to be able to handle TLS connections although it is listening on port 25. What is your mail server? Does it have any options to explicitly disables TLS connections?

  • Robin Shen changed state to 'Open' 6 years ago
    Previous Value Current Value
    Invalid
    Open
  • Robin Shen changed iterations 6 years ago
    Previous Value Current Value
    empty
    3.0.11
  • OneDev changed state to 'Committed' 6 years ago
    Previous Value Current Value
    Open
    Committed
  • Robin Shen batch edited 6 years ago
    Name Previous Value Current Value
    State
    Committed
    Closed
issue 1/1
Type
Bug
Priority
Normal
Assignee
Affected Versions
Not Found
Iterations
Issue Votes (0)
Watchers (2)
Reference
OD-67
Please wait...
Connection lost or session expired, reload to recover
Page is in error, reload to recover