2012-11-24 72 views
1

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

不幸的是包含图像的电子邮件的部分所产生的内容类型是:

Content-Type: application/octet-stream 

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

Content-Type: image/png 

例如,如果你有一个PNG图像。

,但我似乎无法找到如何配置这个Jodd电子邮件库内..

这就是我所寻找。谢谢:)

+0

您是否如此友善地发布您的mail.jar和activation.jar版本?我已经测试过相同的示例,并且内容类型对我来说已经设置好了。我使用mail-1.4.5.jar和activation-1.1(.1).jar。谢谢! – igr

回答

1

如果你按照Jodd网站的例子,然后你使用方法嵌入文件embedFile()。该方法为“快捷方式”的方法:

attach(new FileAttachment(file)); 

其中附上()是用于安装内容的中央的,通用的方法。 FileAttachment依靠javax.mail设置内容类型,可能基于扩展名。

因此,要手动设置内容类型,请使用通用的attach()方法。例如,嵌入文件是这样的:

.embedFile("d:\\c.xxx") 

将设定的内容类型为“application /八位字节流”,因为它不被识别为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。敬请关注;)

+1

还有一件事:Jodd 3.4.1(尚未发布)包含一些修复程序,可修复ThunderBird和Gmail Web客户端上的嵌入式图像问题。 – igr

相关问题