【问题标题】:javax.activation.UnsupportedDataTypeException: no object DCH for MIME type image/png on trying to send emailjavax.activation.UnsupportedDataTypeException:在尝试发送电子邮件时没有对象 DCH 用于 MIME 类型图像/png
【发布时间】:2020-09-02 15:11:03
【问题描述】:

我将我的项目从 Java 8 更新到 14。我还在我的项目 pom.xml 中更新了一堆依赖项。现在,每当我尝试通过应用程序发送电子邮件时,我都会遇到问题。我尝试了许多在网上找到的不同解决方案,但似乎没有一个对我有用。这是错误日志:

javax.mail.MessagingException: IOException while sending message;
  nested exception is:
    javax.activation.UnsupportedDataTypeException: no object DCH for MIME type image/png
    at com.sun.mail.smtp.SMTPTransport.sendMessage(SMTPTransport.java:1365)
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.base/java.lang.reflect.Method.invoke(Method.java:564)
    at org.hibernate.proxy.pojo.javassist.JavassistLazyInitializer.invoke(JavassistLazyInitializer.java:88)
    at 
    java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1130)
    at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:630)
    at java.base/java.lang.Thread.run(Thread.java:832)
Caused by: javax.activation.UnsupportedDataTypeException: no object DCH for MIME type image/png
    at javax.activation.ObjectDataContentHandler.writeTo(DataHandler.java:885)
    at javax.activation.DataHandler.writeTo(DataHandler.java:316)
    at javax.mail.internet.MimeBodyPart.writeTo(MimeBodyPart.java:1687)
    at javax.mail.internet.MimeBodyPart.writeTo(MimeBodyPart.java:991)
    at javax.mail.internet.MimeMultipart.writeTo(MimeMultipart.java:561)
    at com.sun.mail.handlers.multipart_mixed.writeTo(multipart_mixed.java:84)
    at javax.activation.ObjectDataContentHandler.writeTo(DataHandler.java:883)
    at javax.activation.DataHandler.writeTo(DataHandler.java:316)
    at javax.mail.internet.MimeBodyPart.writeTo(MimeBodyPart.java:1687)
    at javax.mail.internet.MimeMessage.writeTo(MimeMessage.java:1906)
    at com.sun.mail.smtp.SMTPTransport.sendMessage(SMTPTransport.java:1315)
    ... 16 more
2020-09-02 17:00:03 INFO  EmailDirectSignOneTimeLogin:79 - direct sign url: http://localhost:3000/direct_sign/czDSIg3Fms
FINISHED JOB

任何帮助将不胜感激。如果您需要更多信息,请对问题发表评论。

【问题讨论】:

    标签: java email java-14


    【解决方案1】:

    这可能会使用有关您正在尝试做的事情的更多信息,但我在处理同一问题时碰巧发现了这个问题,并且还找到了this question 并获得了以下适用于 Java 11 的代码:

                part = new MimeBodyPart();
                ByteArrayDataSource source = new ByteArrayDataSource(logoBytes, "image/png");
                DataHandler handler = new DataHandler(source);
                part.setDataHandler(handler);
                part.setHeader("Content-ID", "<Logo>");
                multipart.addBodyPart(part);
    

    【讨论】:

      猜你喜欢
      • 2013-08-08
      • 2014-03-18
      • 2020-06-11
      • 2016-02-29
      • 2016-01-11
      • 2014-11-18
      • 2014-10-16
      • 2015-01-06
      • 2017-10-30
      相关资源
      最近更新 更多