如何在Java邮件中添加内嵌图像和附加文件

Ahs*_*bid 4 java jakarta-mail

我正在使用Java邮件API进行电子邮件发送.我必须通过电子邮件发送一条消息,其中包含HTML <img>标签指定的内嵌图像和一些附加文件.

我应该使用哪种内容类型MimeMultipart包含内嵌图像和附件文件的部分?

MimeMultipart multipartInline = new MimeMultipart(?);
Run Code Online (Sandbox Code Playgroud)

Bil*_*non 5

这里有三种不同类型的多部分内容:

  • multipart/mixed - 常用于包含带有"附件"的主要邮件正文
  • multipart/alternative - 用于以不同格式发送相同的数据,例如纯文本和html
  • multipart/related - 常用于包含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
Run Code Online (Sandbox Code Playgroud)

html部分将要使用"cid:"URL引用引用图像部分,图像部分将需要相应的Content-ID标头. RFC2387有更多细节.您可以通过搜索JavaMail论坛找到一些示例.