After some sleep i found the solution .. inside the javax-mail.jar is the mailcap file which contains the mappings from mime-types to java classes. So i just changed the context classloader to the correct class, directly before the Transport.send Thread.currentThread().setContextClassLoader(com.sun.mail.handlers.text_html.class.getClassLoader());
best regards, Matthias Am Di., 28. Jan. 2020 um 06:15 Uhr schrieb Jean-Baptiste Onofré < j...@nanthrax.net>: > Hi Matthias, > > Yeah, it's what I thought. Let me take a look. > > Regards > JB > > On 27/01/2020 22:52, Matthias Leinweber wrote: > > Hi JB, > > > > impressive memory.. found the > > ticket: https://issues.apache.org/jira/browse/KARAF-5571 unresolved, but > > I encountered the same exception a few hours ago. > > I think that the "no object dch for mime type" is a result of the class > > loader separation... but i have no idea from which class I should > > replace my context class loader before sending the mail. > > > > Am Mo., 27. Jan. 2020 um 21:22 Uhr schrieb Jean-Baptiste Onofré > > <j...@nanthrax.net <mailto:j...@nanthrax.net>>: > > > > Hi Matthias, > > > > AFAIR, we have a Jira about that. Are you sure about the activation > > version you are using ? > > > > Regards > > JB > > > > On 27/01/2020 21:16, Matthias Leinweber wrote: > > > > > > Hello Karaf Users, > > > > > > Hello Karaf-Team, > > > > > > I try to create a Component which is able to send mails. I looked > into > > > the decanter email component and basically used it and modified > > it for > > > multi part. > > > The strange this is, that somehow the client can't read a > response. I > > > have no idea what i could do... i read something about class loader > > > problems with this error. But i cant get it working. > > > Using karaf 4.2.8 with java9 > > > I added com.sun.activation/javax.activation/1.2.0 for > > > javax.activation.DataHandler (missing/hidden/removed in jdk9?) > > > > > > Here is the debug log from the Session: > > > > > > DEBUG: setDebug: JavaMail version 1.6.0 > > > DEBUG: getProvider() returning > > > > > > > javax.mail.Provider[TRANSPORT,smtp,com.sun.mail.smtp.SMTPTransport,Oracle,1.6.0] > > > DEBUG SMTP: useEhlo true, useAuth false > > > DEBUG SMTP: trying to connect to host "172.18.0.1", port 25000, > > isSSL false > > > 220 this-is-correct.xx ESMTP Postfix > > > DEBUG SMTP: connected to host "172.18.0.1", port: 25000 > > > > > > EHLO c7182e3f0afe > > > 250-this-is-correct.xx > > > 250-PIPELINING > > > 250-SIZE 30720000 > > > 250-VRFY > > > 250-ETRN > > > 250-ENHANCEDSTATUSCODES > > > 250-8BITMIME > > > 250 DSN > > > DEBUG SMTP: Found extension "PIPELINING", arg "" > > > DEBUG SMTP: Found extension "SIZE", arg "30720000" > > > DEBUG SMTP: Found extension "VRFY", arg "" > > > DEBUG SMTP: Found extension "ETRN", arg "" > > > DEBUG SMTP: Found extension "ENHANCEDSTATUSCODES", arg "" > > > DEBUG SMTP: Found extension "8BITMIME", arg "" > > > DEBUG SMTP: Found extension "DSN", arg "" > > > DEBUG SMTP: use8bit false > > > MAIL FROM:<also-cor...@somewhere.xx> > > > 250 2.1.0 Ok > > > RCPT TO:<my.corrent@mail.address> > > > 250 2.1.5 Ok > > > DEBUG SMTP: Verified Addresses > > > DEBUG SMTP: my.corrent@mail.address > > > DATA > > > 354 End data with <CR><LF>.<CR><LF> > > > DEBUG SMTP: IOException while sending, closing, THROW: > > > javax.activation.UnsupportedDataTypeException: no object DCH for > MIME > > > type multipart/mixed; > > > boundary="----=_Part_0_973667738.1580155842011" > > > .... > > > > > > And here is basically my code: > > > properties = new Properties(); > > > properties.put("mail.smtp.host", cc.getString("hostname")); > > > properties.put("mail.smtp.port", cc.getString("port")); > > > properties.put("mail.smtp.connectiontimeout", "10000"); > > > properties.put("mail.smtp.timeout", "10000"); > > > [....] > > > > > > Session session = Session.getInstance(properties); > > > session.setDebug(true); > > > MimeMessage message = new MimeMessage(session); > > > Multipart multipart = new MimeMultipart(); > > > message.setFrom(new InternetAddress(from)); > > > message.setSubject(subject); > > > for (String to : tos) { > > > message.addRecipients(Message.RecipientType.TO > > <http://Message.RecipientType.TO> > > > <http://Message.RecipientType.TO>, to); > > > } > > > > > > BodyPart messageBodyPart = new MimeBodyPart(); > > > messageBodyPart.setText("This is message body"); > > > multipart.addBodyPart(messageBodyPart); > > > > > > byte[] bytes = bos.toByteArray(); //very small > > > MimeBodyPart mimeBodyPart = new MimeBodyPart(); > > > ByteArrayDataSource ds = new ByteArrayDataSource(bytes, > > > "application/octet-stream"); > > > mimeBodyPart.setDataHandler(new DataHandler(ds)); > > > mimeBodyPart.setFileName(UUID.randomUUID().toString()); > > > multipart.addBodyPart(mimeBodyPart); > > > > > > message.setContent(multipart); > > > Transport.send(message); > > > > > > best regards, > > > it is not > > > > -- > > Jean-Baptiste Onofré > > jbono...@apache.org <mailto:jbono...@apache.org> > > http://blog.nanthrax.net > > Talend - http://www.talend.com > > > > > > > > -- > > > > Matthias Leinweber - Data Tactics > > > > Telefon: +49 176 810 24580 > > E-Mail: m.leinwe...@datatactics.de <mailto:m.leinwe...@datatactics.de> > > Internet: http://www.datatactics.de > > Postanschrift: Grabenheckerstraße 9, 35232 Dautphetal > > > > -- > Jean-Baptiste Onofré > jbono...@apache.org > http://blog.nanthrax.net > Talend - http://www.talend.com >