0

我正在使用带有 mime 消息的电子邮件发送内联图像。这是相同的简短代码。这工作正常。我的问题是我没有将 MimeMessage 内容类型设置为多部分/相关(也没有将多部分子类型设置为相关),但我的代码工作正常并且我能够在预期位置获得内联图像。当我使用 cid 引用图像部分时,我是否真的应该关心将 Content-Type 设置为 multipart/related 或服务器会处理这个问题?

  MimeMessage   msg = new MimeMessage(mailSession);
  MimeMultipart mpart = new MimeMultipart();
  MimeBodyPart bp = new MimeBodyPart();
  bp.setText("plain text and here is html image refering image part <img src="cid:Unique-ContentId" />", CHARSET_UTF_8, MESSAGE_HTML_CONTENT_TYPE);
  // add message body
  mpart.addBodyPart(bp);

 // adding inline image  part
  MimeBodyPart bodyPart1 = new MimeBodyPart();
  bodyPart1.setFileName("inline image");
  file1 = new File("image1");
  DataSource source1 = new FileDataSource(file);
  bodyPart1.setDataHandler(new DataHandler(source));
  bodyPart1.setDisposition(MimeBodyPart.INLINE);
  bodyPart1.setHeader("Content-ID", "Unique-ContentId");
  bodyPart1.setHeader("Content-Type", "image/jpeg");
  mpart.addBodyPart(bodyPart1);

  // At last setting multipart In MimeMessage
  msg.setContent(mpart);

仅供参考,我的电子邮件客户端可以是 Outlook、lotusnotes、yahoo、gmail、thunderbird

4

1 回答 1

0

这就是我们所说的“运气”。:-)

显然,您使用的电子邮件客户端在解释您发送的消息的方式上非常慷慨。电子邮件规范中没有任何内容表明他们应该以这种方式解释此类消息。

于 2012-10-31T16:53:31.933 回答