1

我正在开发一个系统,该系统将电子邮件发送给可能从公共接入点或“封闭”接入点(看不到互联网)读取电子邮件的收件人。我以 HTML 格式发送的电子邮件可能嵌入了图像。这些图像是预定义的,并且存在于已知位置。自然,从(公共)互联网读取的电子邮件无法加载托管在(私人)封闭网络中的图像;从封闭网络读取的电子邮件无法从互联网加载图像

目前,在电子邮件生成期间,我们正在根据收件人的电子邮件地址确定我们应该将 设置img src为公共路径还是私有路径。我很想找到一种本机 HTML 技术,它可以告诉电子邮件客户端“尝试这个图像的公共路径,如果它不加载故障转移到这个私有路径”。我的理解是,几乎总是希望电子邮件客户端去除 JavaScript,因此 ECMA 不会成为该解决方案的一部分。可悲的是。

尝试 1

我尝试将 设置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. 所以,没有快乐。

尝试 2

table我尝试用图像创建一个background

<table background="path/to/private/my_image.jpg">
   <tr>
      <td>
         <img src="path/to/public/my_image.jpg" />
      </td>
   </tr>
</table>

Outlook 也没有这样做。

尝试 3

本着“工作起来可能很疯狂”的精神,我尝试为src图像提供两个属性:

<img src="path/to/public/my_image.jpg" src="path/to/private/my_image.jpg" ..etc.. />

那在任何地方都行不通。只有第一个src会习惯于尝试加载图像。

4

2 回答 2

0

如果您的逻辑是在服务器上进行的,我认为您最好链接到生成/提供正确图像的脚本,而不是直接使用图像?

就像是:

<img src="http://www.example.com/path/to/script/image.php?email=info@example.com&amp;name=example-image-1" />

image.php然后将基于给定参数的一些逻辑。这些可能是收件人的电子邮件(可以详细说明他们的访问权限),也可能是图像的名称(以便您知道在该位置提供哪个图像)。

然后,您需要充当image.php图像的正确 mime 类型,以便电子邮件客户端可以正确呈现它。

这比尝试在电子邮件本身中使用黑客更有优势。

希望这可以帮助?

米奇。

PS - 请记住在 HTML 电子邮件中提供绝对 URL。相对图像不起作用。

于 2013-03-11T14:44:09.333 回答
0

为什么不将图像嵌入为附件?您可以将 img 标签的 src 属性指定为“cid:xyz”,如果图像附件的“Content-id”MIME 属性为“xyz”,则为“xyz”。

于 2013-03-11T14:50:51.990 回答