当Java代码发送邮件时,Struts2中的Web应用程序出现随机错误:
javax.mail.MessagingException: IOException while sending message;
nested exception is:
javax.activation.UnsupportedDataTypeException: no object DCH for MIME type multipart/mixed;
at com.sun.mail.smtp.SMTPTransport.sendMessage(SMTPTransport.java:1290)
at javax.mail.Transport.send0(Transport.java:255)
at javax.mail.Transport.send(Transport.java:124)
我已经在WILDFLY 10(Jdk 1.8)中部署了文件战争,在war文件夹WEB-INF / lib中的战争里面有这些库: 激活1.1.jar和邮件1.4.jar。
有时发送电子邮件有效,但随机出现上述错误。 所有电子邮件都没有附件,并且代码始终相同。
我快疯了,我正在测试环境中进行电子邮件测试,并且它始终有效。
我在Wildfly中检查了文件夹“ modules / system / layers / base / javax / mail / api / main”,并在“ / modules / system / layers / base /”中创建了“ javax.mail-1.5.5.jar” javax / activation / api / main”中有“ activation-1.1.1.jar”
有什么主意吗? 非常感谢
答案 0 :(得分:0)
在通过您的代码发送邮件之前,添加以下部分代码:
Thread.currentThread().setContextClassLoader( getClass().getClassLoader() );
答案 1 :(得分:0)
我在发送带有此代码的电子邮件之前建立了解决方案
MailcapCommandMap mc = (MailcapCommandMap) CommandMap.getDefaultCommandMap();
mc.addMailcap("text/html;; x-java-content-handler=com.sun.mail.handlers.text_html");
mc.addMailcap("text/xml;; x-java-content-handler=com.sun.mail.handlers.text_xml");
mc.addMailcap("text/plain;; x-java-content-handler=com.sun.mail.handlers.text_plain");
mc.addMailcap("multipart/*;; x-java-content-handler=com.sun.mail.handlers.multipart_mixed");
mc.addMailcap("message/rfc822;; x-java-content- handler=com.sun.mail.handlers.message_rfc822");
CommandMap.setDefaultCommandMap(mc);
谢谢