繁体   English   中英

在电子邮件中嵌入嵌入式图像并通过cid引用它?

[英]Embedding inline image in email and referring it thru cid?

我正在发送带有MIME消息的电子邮件的嵌入式图像。 这是相同的简短代码。 一切正常。 我的问题是我没有将MimeMessage内容类型设置为multipart / related(也没有将multipart子类型设置为related),但我的代码仍能正常工作,并且我能够在预期的位置获得嵌入式图像。 当我使用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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM