在Jodd电子邮件库的主页上http://jodd.org/doc/email.html关于如何使用库将图像嵌入(而不仅仅是将其作为文件附加)到即将发送的电子邮件中,有一个非常具体的示例。
不幸的是,包含图像的电子邮件部分的最终内容类型是:
Content-Type: application/octet-stream
但为了正确显示它,我们需要这种内容类型:
Content-Type: image/png
例如,如果您有一个png图像。
但我似乎找不到如何在Jodd电子邮件库中配置它。。
这就是我想要的。谢谢:)
如果您遵循Jodd站点中的示例,则使用方法embedFile()嵌入文件。此方法是的"快捷"方法
attach(new FileAttachment(file));
其中attach()是附加内容的中心通用方法FileAttachment依赖javax.mail设置内容类型,可能基于扩展。
因此,要手动设置内容类型,请使用通用的attach()方法。例如,像这样嵌入文件:
.embedFile("d:\c.xxx")
将内容类型设置为"应用程序/八位位组流",因为xxx扩展无法识别它。相反,您可以使用以下内容:
.attach(new ByteArrayAttachment(
FileUtil.readBytes("d:\c.xxx"), "image/png", "c.png", "c.png"))
无论文件名如何,都可以在其中手动设置内容类型。如果您不想加载文件字节,可以通过InputStream等。
另一个解决方案(如果您想继续使用embedFile)是检查您的mime类型设置。
注意:由于有许多附加内容的组合(字节、输入流、文件、内联…),所以在Jodd 3.4.1.中将重构附加方法。以便提供更便于开发人员使用的api。敬请关注;)