【问题标题】:Failover for email images电子邮件图像的故障转移
【发布时间】:2013-03-11 22:50:51
【问题描述】:

我正在开发一个系统,该系统将电子邮件发送给可能从公共访问点或“封闭”访问点(看不到互联网)读取电子邮件的收件人。我以 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

我尝试使用background 图像创建table

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

Outlook 也没有这样做。

尝试 3

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

&lt;img src="path/to/public/my_image.jpg" src="path/to/private/my_image.jpg" ..etc.. /&gt;

这在任何地方都不起作用;只有第一个 src 会习惯于尝试加载图像。

【问题讨论】:

  • 不确定这是否可行。显然都需要内联样式。在 TD 上设置相对的宽度、高度和位置。在 TD 内添加两个具有绝对位置、正确宽度和高度以及不同 z-index 和 top:0 left:0 值的图像。我从来没有尝试过这个,所以它可能是一大堆失败,但你可以试一试。

标签: html css email outlook


【解决方案1】:

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

类似:

<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。相对图像不起作用。

【讨论】:

  • “从(公共)互联网读取的电子邮件无法加载托管在(私有)封闭网络中的图像;从封闭网络读取的电子邮件无法从互联网加载图像”...this也适用于所有资产——页面。所以一半的人将无法访问http://www.example.com/path/to/script/image.php
  • 那么,对于这个用例,是否不可能创建双方都可用的通用资产?成为这两个领域之间的桥梁的东西?如果没有中间立场,我不确定你会怎么做。
【解决方案2】:

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

【讨论】:

  • 好主意,但被客户明确排除。
猜你喜欢
  • 2017-11-08
  • 1970-01-01
  • 2013-02-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多