版本: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,但问题仍然存在。
答案 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");
我希望这也适合您的情况。