在Jodd电子邮件库的首页http://jodd.org/doc/email.html
有一个非常具体的示例,说明如何使用该库将图像(而不只是简单地作为文件附加)嵌入到您要发送的电子邮件中。

不幸的是,包含该图像的电子邮件部分的结果Content-Type为:

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")


会将内容类型设置为“应用程序/八位字节流”,因为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。敬请关注 ;)

07-26 09:28