19

如果我将图像附加到电子邮件中,如何将其放置在 HTML 内容中?我尝试只使用文件名作为图像源,但这似乎不起作用。

4

7 回答 7

11

更具体地了解如何构建 HTML 邮件消息。

结果将是一个多部分 MIME 消息,其中包含一个 text/html 部分(如果您真的使用 text/plain 类型的替代部分正确地做到了)和几个图像,然后从 HTML 中引用这些图像。

请参阅RFC 1813RFC 2378,了解有关混合 MIME 和相关数据中的 content-id 的更多信息(在 HTML 源中由 CID 引用)。

于 2009-05-28T20:09:57.663 回答
5

您可以对标签的src="cid:bgBoletin"属性使用相同的方式。img

于 2012-03-14T15:19:34.610 回答
4

您的问题的答案在此处的春季文档中。

 mailSender.send(new MimeMessagePreparator() {
   public void prepare(MimeMessage mimeMessage) throws MessagingException {
     MimeMessageHelper message = new MimeMessageHelper(mimeMessage, true, "UTF-8");
     message.setFrom("me@mail.com");
     message.setTo("you@mail.com");
     message.setSubject("my subject");
     message.setText("my text <img src='cid:myLogo'>", true);
     message.addInline("myLogo", new ClassPathResource("img/mylogo.gif"));
   }
 });

消息的正文是多部分消息的一部分(请注意,在将消息设置为多部分消息的 MimeMessageHelper 的构造函数上设置为 true 的第二个参数)。

该行将message.addInline("myLogo"...图像添加为多部分消息的另一部分。

您可以使用.setText来设置电子邮件的正文(HTML 内容)。

您可以使用标签 cid 引用多部分电子邮件的其他部分(您的图像)。注意 img src 属性是怎样的src='cid:myLogo'。cid 是图像的内容 ID,作为多部分消息的一部分发送。

于 2012-12-17T11:48:31.107 回答
4

图片附件部分需要 Content-ID

--T4nu9J8b
Content-Type: image/png
Content-ID: <idname>
Content-Transfer-Encoding: base64
Content-Disposition: attachment ;filename="testimage.png"

iVBORw0KGgoAAAANS...
--T4nu9J8b--

注意:内容 ID 名称应放在尖括号中,如给定

使用相同的 Content-ID 将其嵌入到标签中(不带尖括号)

<img alt="Embedded Image" src="cid:idname"/>

这应该允许附加图像显示到 HTML 中!

于 2018-09-19T12:12:31.700 回答
3

我正在这样做

_mime = new MimeMultipart();
BodyPart messageBodyPart = new MimeBodyPart();
messageBodyPart = new MimeBodyPart();
DataSource fds = new FileDataSource("C:\\bgBoletin.jpg");

messageBodyPart.setDataHandler(new DataHandler(fds));
messageBodyPart.setHeader("Content-ID", "<bgBoletin>");
_mime.addBodyPart(messageBodyPart);

并且在 HTM 文件中以这种方式引用 de Content-ID 背景:url(cid:bgBoletin)。

于 2012-03-14T15:13:48.353 回答
3

选项 01:
- 将文件“mySignaturePictue.jpg”作为附件附加到邮件中
- 从正文中引用此附件(插入它),代码如下:
<img src="cid:mySignaturePicture.png">

选项 02:
- 将您的图像转换为 base64 字符串:http://www。 motobit.com/util/base64-decoder-encoder.asp
- 将其插入到 mailtext/html-body 中,代码如下
<img alt="My Image" src="data:image/jpeg;base64,AWWhcalkjsd/beginning/RXhp/of+/long/base64cod/ZgAATU0/+BlaBlubbZ5u8/61a+Xand/much/more..." />
- 缺点:这被大多数客户端阻止并且会增加邮件大小,请参阅:https://www。 campaignmonitor.com/blog/email-marketing/2013/02/embedded-images-in-html-email/https://www.paperstreet.com/blog/email-marketing-embeded-images-cid-what-a -混乱/

于 2017-09-28T11:39:23.447 回答
2

如果这与从您正在开发的网站发送电子邮件有关,只需将图像保存在您的服务器上,然后使用<img src="url"/>.

于 2009-05-28T20:10:44.307 回答