为了账号安全,请及时绑定邮箱和手机立即绑定

在html电子邮件中嵌入图像

在html电子邮件中嵌入图像

叮当猫咪 2019-08-30 17:43:13
我正在尝试发送带有嵌入式gif图像的多部分/相关html电子邮件。此电子邮件是使用Oracle PL / SQL生成的。我的尝试失败了,图像显示为红色X(在Outlook 2007和雅虎邮件中)我已经发送了一段时间的HTML电子邮件,但我现在要求在电子邮件中使用几个gif图像。我可以将它们存储在我们的一个Web服务器上并链接到它们,但许多用户的电子邮件客户端不会自动显示它们,并且需要更改设置或手动为每个电子邮件下载它们。所以,我的想法是嵌入图像。我的问题是:我在这做错了什么?嵌入方法是否正确?如果我需要使用越来越多的图像,还有其他选择吗?附件不起作用,因为图像通常是徽标和图标,这些图标和图标在消息的上下文中无法理解。此外,电子邮件的某些元素是指向在线系统的链接,因此生成静态PDF和附加将无法工作(据我所知)。片段:MIME-Version: 1.0To: me@gmail.comBCC: me@yahoo.comFrom: email@yahoo.comSubject: TestReply-To: email@yahoo.comContent-Type: multipart/related; boundary="a1b2c3d4e3f2g1"--a1b2c3d4e3f2g1content-type: text/html;    <html>    <head><title>My title</title></head>    <body>    <div style="font-size:11pt;font-family:Calibri;">    <p><IMG SRC="cid:my_logo" alt="Logo"></p>... more html here ...</div></body></html> --a1b2c3d4e3f2g1Content-Type: image/gif;Content-ID:<my_logo>Content-Transfer-Encoding: base64Content-Disposition: inline[base64 image data here]--a1b2c3d4e3f2g1--非常感谢。顺便说一句:是的,我已经验证了base64数据是正确的,因为我可以将图像嵌入到html本身(使用相同的algo用于创建标题数据)并在Firefox / IE中查看图像。我还应该注意,这不是针对垃圾邮件,而是将电子邮件发送给每天都在期待的特定客户。内容是数据驱动的,而不是广告。
查看完整描述

3 回答

?
缥缈止盈

TA贡献2041条经验 获得超4个赞

我没有发现任何有用的答案,所以我提供了我的解决方案。


问题是您使用multipart/related的内容类型在这种情况下并不好。我在multipart/mixed里面使用它multipart/alternative(它适用于大多数客户端)。


消息结构应如下所示:


[Headers]

Content-type:multipart/mixed; boundary="boundary1"

--boundary1

Content-type:multipart/alternative; boundary="boundary2"

--boundary2

Content-Type: text/html; charset=ISO-8859-15

Content-Transfer-Encoding: 7bit

[HTML code with a href="cid:..."]


--boundary2

Content-Type: image/png;

name="moz-screenshot.png"

Content-Transfer-Encoding: base64

Content-ID: <part1.06090408.01060107>

Content-Disposition: inline; filename="moz-screenshot.png"

[base64 image data here]


--boundary2--

--boundary1--

然后它会工作


查看完整回答
反对 回复 2019-08-30
  • 3 回答
  • 0 关注
  • 1752 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信