在 Jodd 电子邮件库主页 http://jodd.org/doc/email.html 有一个非常具体的示例,介绍如何使用该库将图像嵌入(而不仅仅是将其作为文件附加)到您要发送的电子邮件中。
不幸的是,包含图像的电子邮件部分的结果内容类型是:
Content-Type: application/octet-stream
但是为了正确显示它,我们需要这个 Content-Type:
Content-Type: image/png
例如,如果您有 png 图像。
但我似乎找不到如何在 Jodd 电子邮件库中配置它..
这就是我所追求的。谢谢:)
最佳答案
如果您遵循 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。请继续关注;)
关于java - 如何使用 java 库 Jodd Email 将图像嵌入到电子邮件的 html 正文中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13546904/