java - 如何使用 java 库 Jodd Email 将图像嵌入到电子邮件的 html 正文中?

标签 java image email embed jodd

在 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/

相关文章:

java - 通过套接字传输文件时出现 EOFException 或 SocketException : Socket is closed,

java - 如何更新 Maven POM 中的版本号

java - .jar 文件中的图标路径

html - 使用 "hover"到 "menu"来显示 "div"中的图像

javascript - 是否可以获取一次 getImageData 并在特定位置之后提取数据?

java - Selenium WebDriver 无法找到页面源中不存在但通过开发人员工具查看时存在于 HTML 中的元素

java - 如何从 firebase 读取子数据

android - 在电子邮件android中设置可点击链接

php - 如何使用 php 链接电子邮件地址

c# - 我可以在 ASP.Net Core 3.0 中使用 IEmailSender 接口(interface)向多个收件人发送电子邮件吗