我正在尝试发送一封包含嵌入式gif图像的multipart/related HTML电子邮件,这封邮件是使用Oracle PL/SQL生成的。我的尝试失败了,在Outlook 2007和Yahoo邮件中,图片显示为红色X。
我已经发送HTML电子邮件有一段时间了,但现在我的要求是在邮件中使用多个gif图像。 我可以将这些图像存储在我们的Web服务器上并进行链接,但许多用户的电子邮件客户端不会自动显示它们,并且需要更改设置或手动下载每个电子邮件中的图像。
所以,我的想法是嵌入图像。我的问题是:
- 我在这里做错了什么?
- 嵌入式方法是否正确?
- 如果我需要使用更多图像,还有其他选项吗?附件行不通,因为这些图像通常是徽标和图标,如果不放在邮件正文中就没有意义。另外,邮件的某些元素是指向在线系统的链接,因此生成静态PDF并附加也不起作用(至少我不知道如何实现)。
片段:
MIME-Version: 1.0
To: me@gmail.com
BCC: me@yahoo.com
From: email@yahoo.com
Subject: Test
Reply-To: email@yahoo.com
Content-Type: multipart/related; boundary="a1b2c3d4e3f2g1"
--a1b2c3d4e3f2g1
content-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>
--a1b2c3d4e3f2g1
Content-Type: image/gif;
Content-ID:<my_logo>
Content-Transfer-Encoding: base64
Content-Disposition: inline
[base64 image data here]
--a1b2c3d4e3f2g1--
非常感谢。
顺便说一句:是的,我已经验证了base64数据是正确的,因为我可以使用创建标题数据时使用的相同算法将图像嵌入html本身中,并在Firefox/IE中看到图像。
我还应该指出,这不是用于垃圾邮件,这些电子邮件发送给特定的客户,他们每天都在期待它。内容是数据驱动的,而不是广告。
<img src="URL" />
对我而言可行,但它是由我托管在外部的图片。这对你不起作用吗? - JonLim