html - 电子邮件图像的故障转移

标签 html css email outlook

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

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

尝试 1

我尝试设置 src作为图像的公共(public)路径,并设置 background-image style 属性是图像的私有(private)路径:

<img src="path/to/ <强> public /my_image.jpg" style="background-image:url('path/to/ <强> private /my_image.jpg');" ..etc.. />

这在浏览器中效果很好(特别是如果设置了高度/宽度属性),但 Outlook (2007) 不支持 background-image .所以,没有快乐。

尝试 2

我尝试创建一个 tablebackground图片:

<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会习惯于尝试加载图像。

最佳答案

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

类似于:

<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 类型提供,以便电子邮件客户端可以正确呈现它。

这比尝试在电子邮件本身中使用 hack 要有利得多。

希望这有帮助吗?

米奇。

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

关于html - 电子邮件图像的故障转移,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14732667/

相关文章:

html - 从 Java servlet 为 HTML5 音频控件提供音频数据

html - 在移动平台上使图像适合 100% 宽度

javascript - 如何更改背景图片?

html - 当 parent 有背景颜色时,图像不显示线性渐变

html - 如何在响应式电子邮件中使表格从右到左堆叠?

html - 您如何使用 CSS 和 Divs 模拟多行水平滚动表行为?

c# - 回发后保留以编程方式创建的 html 控件

css - 在表单内对齐 Div 文本

javascript - 使用 emailyak 在 angularjs 函数中发送电子邮件

Javamail 无法将套接字转换为 TLS GMail