java - 如何在 Java 邮件中添加内联图像和附加文件

标签 java jakarta-mail

我正在使用 Java 邮件 API 发送电子邮件。我必须通过电子邮件发送包含由 HTML 的 <img> 指定的两个内联图像的消息标签和一些附件。

我应该为 MimeMultipart 使用什么内容类型包含内联图像和附件文件的部分?

MimeMultipart multipartInline = new MimeMultipart(?);

最佳答案

这里要考虑三种不同类型的多部分内容:

  • multipart/mixed - 通常用于包含主要消息正文 “附件”
  • multipart/alternative - 用于发送相同的数据 不同的格式,例如纯文本和 html
  • 多部分/相关 - 通常用于包含 html 正文部分和引用的图像 通过那个 html

您可以以各种有趣的方式嵌套这些不同的类型。

要回答原始问题,您需要具有以下结构的消息:

main message
  multipart/mixed
    multipart/related
      text/html - main html content
      image/jpg - an image referenced by the html
    application/pdf - or whatever, for the first attachment

html 部分需要使用“cid:”URL 引用来引用图像部分, 图像部分需要相应的 Content-ID header 。 RFC2387有更多细节。您可能可以通过搜索找到一些示例 JavaMail forum .

关于java - 如何在 Java 邮件中添加内联图像和附加文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8123068/

相关文章:

java - 无法将 .txt 文件移动到 java 中的存档文件夹

java - 使用 CDI 转换器进行 JSF selectOneMenu 实体转换失败

java - 使用 SMTP 为 SendMail 函数编写单元测试

java - 使用 Spring Boot 和 Spring 集成进行异步邮件接收

java - 未知 SMTP 主机

java - 你能根据查询创建一个 Intent 过滤器吗?

java - 比较 2 个单独数组中的 2 组整数值

java - 使用 mail-service.xml 文件从 jboss 发送电子邮件

java - 同步。使用 imap java 发送电子邮件

java - 获取Java类/对象的私有(private)属性列表