在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。敬请关注 ;)