在Jodd电子邮件库的主页http://jodd.org/doc/email.html 有一个非常具体的示例,说明如何使用该库将图像嵌入(而不仅仅是将其作为文件附加)到您要发送的电子邮件中。
不幸的是,包含图片的电子邮件部分的最终内容类型是:
Content-Type: application/octet-stream
但为了正确显示它,我们需要这个Content-Type:
Content-Type: image/png
例如,如果你有一个png图像。
但我似乎无法找到如何在Jodd电子邮件库中配置它..
这就是我所寻求的。谢谢:))
答案 0 :(得分:1)
如果您按照Jodd网站上的示例进行操作,则使用 embedFile()方法嵌入文件。这种方法是一种“捷径”方法:
attach(new FileAttachment(file));
其中 attach()是附加内容的核心通用方法。 FileAttachment 依赖于 javax.mail 来设置内容类型,可能基于扩展名。
因此,要手动设置内容类型,请使用通用 attach()方法。例如,嵌入这样的文件:
.embedFile("d:\\c.xxx")
会将内容类型设置为“application / octet-stream”,因为 xxx 扩展名无法识别。相反,您可以使用以下内容:
.attach(new ByteArrayAttachment(
FileUtil.readBytes("d:\\c.xxx"), "image/png", "c.png", "c.png"))
您可以在其中手动设置内容类型,而不管文件名。如果您不想加载文件字节,可以传递 InputStream 等。
另一种解决方案(如果您想继续使用 embedFile )是检查mime type settings。
注意:由于有很多组合如何附加内容(字节,输入流,文件,内联...),附加方法将在Jodd 3.4.1中重构。为了提供更多开发人员友好的api。请继续关注;)