SMTP send error using self-host option
Using the self-host docker-compose file and the latest clearflask-server image (with digest ed1f3a04bec9), and an external SMTP server configured as such:
# Select generic SMTP ('smtp') or Amazon SES ('ses') com.smotana.clearflask.core.push.provider.EmailServiceImpl$Config.useService=smtp # For SMTP com.smotana.clearflask.core.push.provider.EmailServiceImpl$Config.smtpStrategy=SMTP com.smotana.clearflask.core.push.provider.EmailServiceImpl$Config.smtpHost=outgoing.server.net com.smotana.clearflask.core.push.provider.EmailServiceImpl$Config.smtpPort=587 com.smotana.clearflask.core.push.provider.EmailServiceImpl$Config.smtpUser=user@tld.com com.smotana.clearflask.core.push.provider.EmailServiceImpl$Config.smtpPassword=xxxx com.smotana.clearflask.core.push.provider.EmailServiceImpl$Config.emailDisplayName=Clearflask com.smotana.clearflask.core.push.provider.EmailServiceImpl$Config.fromEmailLocalPart=noreply com.smotana.clearflask.core.push.provider.EmailServiceImpl$Config.fromEmailDomainOverride=company.com com.smotana.clearflask.core.push.provider.EmailServiceImpl$Config.bccEmails=nick.douma@company.com
I seem to get an error about building the email body, a class cast exception from multipart_mixed to a DataContentHandler:
clearflask-server_1 | 14:29:57.645 [pool-28-thread-1] ERROR o.s.i.util.concurrent.NamedRunnable - Failed to run sendMail process clearflask-server_1 | org.simplejavamail.mailer.internal.MailerException: Failed to send email [ID: '<1617344838.3.1706797737574@21f994d5da02>'], reason: Unknown error clearflask-server_1 | at org.simplejavamail.mailer.internal.SendMailClosure.handleException(SendMailClosure.java:85) clearflask-server_1 | at org.simplejavamail.mailer.internal.SendMailClosure.executeClosure(SendMailClosure.java:76) clearflask-server_1 | at org.simplejavamail.mailer.internal.AbstractProxyServerSyncingClosure.run(AbstractProxyServerSyncingClosure.java:56) clearflask-server_1 | at org.simplejavamail.internal.util.concurrent.NamedRunnable.run(NamedRunnable.java:40) clearflask-server_1 | at java.base/java.util.concurrent.CompletableFuture$AsyncRun.run(CompletableFuture.java:1736) clearflask-server_1 | at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) clearflask-server_1 | at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) clearflask-server_1 | at java.base/java.lang.Thread.run(Thread.java:829) clearflask-server_1 | Caused by: java.lang.ClassCastException: class com.sun.mail.handlers.multipart_mixed cannot be cast to class jakarta.activation.DataContentHandler (com.sun.mail.handlers.multipart_mixed and jakarta.activation.DataContentHandler are in unnamed module of loader org.apache.catalina.loader.ParallelWebappClassLoader @2e237e39) clearflask-server_1 | at jakarta.activation.MailcapCommandMap.getDataContentHandler(MailcapCommandMap.java:620) clearflask-server_1 | at jakarta.activation.MailcapCommandMap.createDataContentHandler(MailcapCommandMap.java:591) clearflask-server_1 | at jakarta.activation.DataHandler.getDataContentHandler(DataHandler.java:591) clearflask-server_1 | at jakarta.activation.DataHandler.writeTo(DataHandler.java:290) clearflask-server_1 | at jakarta.mail.internet.MimeBodyPart.writeTo(MimeBodyPart.java:1683) clearflask-server_1 | at jakarta.mail.internet.MimeMessage.writeTo(MimeMessage.java:1911) clearflask-server_1 | at org.eclipse.angus.mail.smtp.SMTPTransport.sendMessage(SMTPTransport.java:1305) clearflask-server_1 | at org.simplejavamail.mailer.internal.util.TransportRunner.lambda$sendMessage$0(TransportRunner.java:61) clearflask-server_1 | at org.simplejavamail.mailer.internal.util.TransportRunner.runOnSessionTransport(TransportRunner.java:81) clearflask-server_1 | at org.simplejavamail.mailer.internal.util.TransportRunner.sendMessage(TransportRunner.java:56) clearflask-server_1 | at org.simplejavamail.mailer.internal.SendMailClosure.executeClosure(SendMailClosure.java:69) clearflask-server_1 | ... 6 common frames omitted clearflask-server_1 | Suppressed: jakarta.mail.MessagingException: Exception reading response clearflask-server_1 | at org.eclipse.angus.mail.smtp.SMTPTransport.readServerResponse(SMTPTransport.java:2509) clearflask-server_1 | at org.eclipse.angus.mail.smtp.SMTPTransport.close(SMTPTransport.java:1401) clearflask-server_1 | at org.simplejavamail.mailer.internal.util.TransportRunner.runOnSessionTransport(TransportRunner.java:82) clearflask-server_1 | ... 8 common frames omitted clearflask-server_1 | Caused by: java.net.SocketTimeoutException: Read timed out clearflask-server_1 | at java.base/java.net.SocketInputStream.socketRead0(Native Method) clearflask-server_1 | at java.base/java.net.SocketInputStream.socketRead(SocketInputStream.java:115) clearflask-server_1 | at java.base/java.net.SocketInputStream.read(SocketInputStream.java:168) clearflask-server_1 | at java.base/java.net.SocketInputStream.read(SocketInputStream.java:140) clearflask-server_1 | at java.base/sun.security.ssl.SSLSocketInputRecord.read(SSLSocketInputRecord.java:478) clearflask-server_1 | at java.base/sun.security.ssl.SSLSocketInputRecord.readHeader(SSLSocketInputRecord.java:472) clearflask-server_1 | at java.base/sun.security.ssl.SSLSocketInputRecord.bytesInCompletePacket(SSLSocketInputRecord.java:70) clearflask-server_1 | at java.base/sun.security.ssl.SSLSocketImpl.readApplicationRecord(SSLSocketImpl.java:1454) clearflask-server_1 | at java.base/sun.security.ssl.SSLSocketImpl$AppInputStream.read(SSLSocketImpl.java:1065) clearflask-server_1 | at org.eclipse.angus.mail.util.TraceInputStream.read(TraceInputStream.java:107) clearflask-server_1 | at java.base/java.io.BufferedInputStream.fill(BufferedInputStream.java:252) clearflask-server_1 | at java.base/java.io.BufferedInputStream.read(BufferedInputStream.java:271) clearflask-server_1 | at org.eclipse.angus.mail.util.LineInputStream.readLine(LineInputStream.java:104) clearflask-server_1 | at org.eclipse.angus.mail.smtp.SMTPTransport.readServerResponse(SMTPTransport.java:2489) clearflask-server_1 | ... 10 common frames omitted
I've tried all non-TLS and TLS mechanisms supported. When dumping the packets, it seems that the connection goes correctly until the STARTTLS command, and after that nothing is else is sent until the remote server closes the connection. Seems like something goes wrong with building the sender/recipient, or the email body.
Am I configuring this wrong, or is this a bug?