1

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

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

Content-Type: application/octet-stream

但是为了正确显示它,我们需要这个 Content-Type:

Content-Type: image/png

例如,如果您有 png 图像。

但我似乎无法在 Jodd 电子邮件库中找到如何配置它。

这就是我所寻求的。谢谢 :)

4

1 回答 1

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 类型设置

注意:由于如何附加内容(字节、输入流、文件、内联...)有多种组合,附加方法将在 Jodd 3.4.1 中重构。为了提供对开发者更友好的 api。敬请关注 ;)

于 2012-11-27T10:09:28.053 回答