我开发了一个桌面应用程序,它具有创建 Outlook 签名的功能。
在大多数情况下,这种方法效果很好。应用程序会生成 HTML 签名并将其保存在正确的位置,Outlook 可以正常查看该签名,并将其用于外发电子邮件。
问题出在图像上。是否可以以某种方式指定本地.png
文件,例如将其包含在签名中?
在我的应用程序生成的 HTML 中,我包含了以下<img>
标签:
<img width=152 height=84 src="[path]\image.png">
这作品很好当地的系统。开始发送电子邮件时,图像会正常显示。但是,收件人看到的不是预期图像,而是常见的“图像缺失”红色 X。
编辑
由于防火墙限制,在这种情况下无法链接到在线图像。
此外,Outlook 允许我们使用其自己的签名编辑器直接添加离线图像,所以我希望模仿这种功能。
答案1
自 2013 版起,Outlook 不再在签名中嵌入图像并保留图片位置的链接,尽管收件人不会存在对本地图像的引用。
仅当您在 HTML 编辑器中手动创建签名而不是使用 Outlook 签名编辑器时才会发生此问题。
这在通过 Outlook 签名编辑器添加图片时有效,因为使用了特殊的 HTML 标签,这些标签在发送时会被识别,因此 Outlook 最终仍会嵌入这些链接的图片。这些标签来自旧的 矢量标记语言 (VML),Outlook 至今仍在使用这个功能。
您可以使用
Outlook 签名编辑器
创建一个示例签名来查看 VML 标签的<v:image>
实际作用,然后相应地修改您的 HTML。
Microsoft 的一个资源是文章 使用图像元素。以下示例来自文章:
<v:image style='width:100pt;height:80pt' src="image1.jpg" />
答案2
实际上,您不需要对签名.htm 文件进行任何特殊处理。只需启用Microsoft 支持文章。或者您可以使用免费 Outlook 调整器启用此选项(我是 Tweaker 的开发人员之一)。
答案3
正如超级用户要求上传图像或提供 URL 以在帖子中显示图像一样,您的应用程序也必须进行类似的分配。
正如 Steve Fan 所建议的,您必须拥有 Outlook 可以访问的外部资源。可能的例外情况是,您拥有可供外部用户访问的内部服务器。
将 [path] 替换为图片的 URL,预期目标就会发挥作用。但有一个例外,即收件人的电子邮件客户端会屏蔽收件箱消息中的外部图片,这种情况很常见,无法绕过。