在Mule错误中发送pdf附件“没有MIME类型的对象DCH”

时间:2015-10-13 23:11:10

标签: mule javax.mail

版本:Mule 3.6,JRE 7,javax.mail 1.5.4

问题:使用PDF附件发送SMTP电子邮件失败,错误:

javax.activation.UnsupportedDataTypeException: no object DCH for MIME type application/pdf

发送电子邮件的代码:

        DataSource fileDataSource =new FileDataSource("c:\\temp\\agreement.pdf");
        InputStream fi = fileDataSource.getInputStream();
        DataSource fileDataSource1 = new ByteArrayDataSource(fi, "application/pdf");
        msg.addOutboundAttachment("agreement.pdf", fileDataSource1, "application/pdf");

切换到发送text / plain,或text / html工作正常。

阅读SO-Mule no object DCH for MIME type application/pdf后,我尝试升级到javax.mail.jar 1.5.4,但问题仍然存在。

1 个答案:

答案 0 :(得分:0)

几天前我遇到了同样的问题,但使用文本/日历和纯 java。我根据您的内容类型编辑了我的解决方案。只需在方法的开头添加以下代码:

final MimetypesFileTypeMap mimetypes = (MimetypesFileTypeMap) MimetypesFileTypeMap.getDefaultFileTypeMap();
mimetypes.addMimeTypes("application/pdf pdf PDF");
final MailcapCommandMap mailcap = (MailcapCommandMap) MailcapCommandMap.getDefaultCommandMap();
mailcap.addMailcap("application/pdf;; x-java-content-handler=com.sun.mail.handlers.text_plain");

我希望这也适合您的情况。