我想将图像添加为内联附件,使用以下代码
一切正常<img src="cid:logo.jpg">
in.addAttachment("cid:logo.jpg", new DataHandler(new FileDataSource("src/resources/logo.jpg")));
唯一的问题是,我无法在Thunderbird中看到图像作为内联附件,因为内容类型是“application / octet-stream”,但它必须是“image / jpeg”才能正确显示。 当我在Apache Camel中添加MIME类型时:
in.addAttachment("cid:logo.jpg", new DataHandler(new FileDataSource("src/resources/logo.jpg"), "image/jpeg"));
它抛出并且异常说“MIME类型image / pjpeg没有对象DCH” 我该如何处理这个问题?!
答案 0 :(得分:1)
不确定这是否真的是您的问题,但如果您查看文档(http://camel.apache.org/mail.html),则说明:
Geronimo邮件.jar 图标 我们发现geronimo邮件.jar(v1.6)在使用附件轮询邮件时有一个错误。它无法正确识别Content-Type。因此,如果您将.jpeg文件附加到邮件并进行轮询,则Content-Type将解析为text / plain而不是image / jpeg。出于这个原因,我们添加了一个org.apache.camel.component.ContentTypeResolver SPI接口,它允许您提供自己的实现并通过根据文件名返回正确的Mime类型来修复此错误。因此,如果文件名以jpeg / jpg结尾,则可以返回image / jpeg。 您可以在MailComponent实例或MailEndpoint实例上设置自定义解析程序。
如果这是您的问题,解决方案是提供您自己的ContentTypeResolver
答案 1 :(得分:0)
按照this JavaMail FAQ entry中的说明创建一个DataSource,并在第一个示例中使用它代替FileDataSource。