我正在开发一个系统,可以将电子邮件发送给可能从公共访问点或“封闭”访问点(无法访问互联网)读取电子邮件的收件人。我的电子邮件以HTML格式发送,可能嵌入了图像。图像是预定义的并且存在于已知位置。当然,从(公共)互联网上读取的电子邮件无法加载(私人)封闭网络中托管的图像;从封闭网络读取的电子邮件无法从互联网上加载图像。
目前,在电子邮件生成过程中,我们会根据收件人的电子邮件地址确定是否应将img src
设置为公共路径或私有路径。 我很想找到一种原生的HTML技术,它可以告诉电子邮件客户端“尝试使用图片的公共路径,如果它没有将故障转移加载到此私有路径”。我的理解是电子邮件客户端几乎总是被要求剥离JavaScript,因此ECMA不会成为此解决方案的一部分。不幸的是
我尝试将src
设置为图片的公共路径,并将background-image
样式属性设置为图像的私有路径:
<img src="path/to/
的 public
/my_image.jpg" style="background-image:url('path/to/
的 private
/my_image.jpg');" ..etc.. />
在浏览器中效果很好(特别是在设置了高度/宽度属性的情况下),但Outlook(2007)不支持background-image
。所以,没有快乐。
我尝试使用table
图片创建background
:
<table background="path/to/private/my_image.jpg">
<tr>
<td>
<img src="path/to/public/my_image.jpg" />
</td>
</tr>
</table>
Outlook也没有这样做。
本着“它可能足够疯狂”的精神,我尝试为图像提供两个src
属性:
<img src="path/to/
的 public
/my_image.jpg" src="path/to/
的 private
/my_image.jpg" ..etc.. />
这在任何地方都无效;只有第一个src
会习惯于尝试加载图片。
答案 0 :(得分:0)
如果您的逻辑是在服务器上制作的,我认为您最好链接到生成/提供正确图像的脚本,而不是直接显示图像?
类似:
<img src="http://www.example.com/path/to/script/image.php?email=info@example.com&name=example-image-1" />
然后 image.php
将根据给定的参数建立一些逻辑。这些可能是收件人的电子邮件(可以详细说明他们的访问权限),也可能是图像的名称(这样您就知道在这个位置上要投放哪个图像)。
然后,您需要将image.php
作为图像的正确mime类型提供,以便电子邮件客户端可以正确呈现它。
这比尝试在电子邮件中使用黑客更有利。
希望这有帮助吗?
米奇。
PS - 请记住在HTML电子邮件中提供绝对URL。相对图像不起作用。
答案 1 :(得分:0)
为什么不将图像作为附件嵌入?您可以将img标记的src属性指定为“cid:xyz”,其中“xyz”如果是图像附件的“Content-id”MIME属性。