主要电子邮件客户端软件中的数据 URI 支持是啥样的?

     2023-02-24     198

关键词:

【中文标题】主要电子邮件客户端软件中的数据 URI 支持是啥样的?【英文标题】:What is Data URI support like in major email client software?主要电子邮件客户端软件中的数据 URI 支持是什么样的? 【发布时间】:2011-08-29 12:53:27 【问题描述】:

Data URIs 是在 HTML 中嵌入图像和其他二进制数据的标准方式,并且浏览器支持在 Web 上有详细记录。 (IE8 是第一个支持 Data URI 的 IE 版本,每个 URI 最大大小为 32 KB;其他主要浏览器支持它的时间更长。)

我的问题是关于桌面电子邮件和网络邮件客户端软件。

在构建 HTML 电子邮件时,标准做法是将图像作为附件包含或从外部加载(即跟踪图像)。这两者都有缺点(一些客户端列出了所有这些附加文件,而许多客户端正确地阻止或要求用户操作才能查看外部图像)。因此,Data URI 看起来是一个不错的选择,但前提是它受到电子邮件阅读器的支持。

那么,有没有人提供最近关于支持此功能的研究的链接?或者根本调查过这个?例如,这是一个overview of CSS support。我感兴趣的客户端软件包括:

桌面(包括版本信息):Outlook、Apple Mail、Thunderbird、Evolution、Lotus Notes、AOL、Eudora

Webmail: Gmail、Live/Hotmail、Yahoo!邮件,美国在线

手机:Android、iPhone

【问题讨论】:

【参考方案1】:

Mac Mail、Outlook 2003 和 MobileMe 支持数据 URI。不确定其他客户端,但您可以轻松找到 — 在 Gmail 中创建新邮件,单击“插入图片”,然后单击“使用 URL”并粘贴数据 URI。然后,将其发送到多个地址并在您想要的客户端中打开它。

【讨论】:

我无法在 gmail 中复制它(如 this 海报所示)。请给一个有效的示例网址好吗?【参考方案2】:

我最近在 Litmus 进行了测试,其中包含用于内联 <img> 元素和 css 背景图像的数据 URI。

这些桌面客户端显示数据 URI:

苹果邮件 5 苹果邮件 6 莲花笔记 8 展望 2003 雷鸟 3.0 雷鸟最新版

这些移动客户端确实显示数据 URI:

Android 2.3 Android 4.0 黑莓 5 操作系统 iPad iPhone 3GS iPhone 4S iPhone 5

没有一个 webmail 客户端显示数据 URI。

这些桌面客户端不会:

莲花笔记 6.5 莲花笔记7 莲花笔记 8.5 展望 2000 Outlook 2002/XP 展望 2007 展望 2010 展望 2011 展望 2013

这些移动客户端不会:

Gmail (Android) Outlook.com (Android) 雅虎(安卓) 黑莓 4 操作系统 塞班 Windows Phone 7.5

【讨论】:

Hotmail 在浏览器中呈现,因此它很可能支持数据 URI。 我用最近的结果更新了我的原始答案,包括不支持数据 URI 的客户端列表。 我很好奇为什么 Outlook 2003 可以工作,但任何更高版本都不能工作。此外,如果 Chrome 浏览器显示数据 URI,为什么电子邮件中的此类链接无法在同一 Chrome 浏览器中正确显示。 @OldGeezer 一些邮件客户端会捏造数据:uri。 @OldGeezer 我认为是因为从 Outlook 2007 开始,Microsoft 切换到 Word 作为 Outlook HTML 渲染引擎,而不是像 2003 年那样使用 Internet Explorer【参考方案3】:

我刚刚测试了 GMail,似乎 GMail 不再支持数据 URI。

此外,gmx.de(一个非常流行的德国网络邮件提供商)将图像 URI 转换为其服务器上的 URI,这似乎不支持数据 URI。

【讨论】:

【参考方案4】:

我无法直接回答有关支持 data-uri 的问题,但在电子邮件浏览器中对此类内容的支持通常非常糟糕。这个问题确实来自他们中的许多人使用他们自己的缩减渲染引擎,这些引擎不是完整的 html 渲染器。在一个仍然最好使用基于表格的设计来确保电子邮件可读的系统中,我不会尝试做任何聪明的事情。

但是,您可能已经知道电子邮件允许使用两种类型的附件。如果您将附件标记为内联,则它往往不会出现在附件列表中(尽管经常出现)。

我个人认为确保电子邮件的可读性比不显示要好,显然远程图像的其他方法在这里没有帮助。

【讨论】:

它是啥样的数据?

...2017-05-2916:50:57【问题描述】:我使用红蜘蛛吊舱。当我从客户端发送“KID:NOOP-sendMessage:Testfromchild”时,服务器得到的数据如图所示请帮助了解如何读取此数据。【问题讨论】:【参考方案1】:这种数据只是一个字符串"Testfro... 查看详情

用php-redis给全部用户发送邮件,数据量很大,思路应该是啥样的

...用户ID来寻找email地址进行邮件发送,发送成功去除队列中的用户id本回答被提问者采纳 查看详情

运行oracle数据库,对服务器硬件需求是啥样的

...所以建议硬件配置越高越好。一般地,服务器配置应高于客户端配置,而且配置越高安装速度越快。2)软件环境安装Oracle10g数据库的软件需求如表所示。 查看详情

运行oracle数据库,对服务器硬件需求是啥样的

...所以建议硬件配置越高越好。一般地,服务器配置应高于客户端配置,而且配置越高安装速度越快。2)软件环境安装Oracle10g数据库的软件需求如表所示。本回答被提问者采纳 查看详情

典型的分布式 KVS 是啥样的?

...示:有一个负责管理元数据的领导有多个关注者管理数据客户端与领导者交互当客户端要求向领导者写入数据时,它会决定哪个节点应该拥有数据,然后通过某种哈希算法(例如一致哈希)传递它另外,Leader将数据 查看详情

oracle具体是个啥样的组织

...服务。甲骨文公司1989年正式进入中国。  甲骨文公司主要的产品目前分为两大类:  1.服务器(服务器)及工具(主要竞争对手:IBM、微软)  *数据库服务器:2007年最新版本Oracle11G  *应用服务器:OracleApplicationServer... 查看详情

android中的uri到底是啥?

...以用Uri来表示。URI一般由三部分组成:在Android平台,URI主要分三个部分:scheme,authorityandpa 查看详情

oracleebs的接口方式是啥样的?与dblink有啥不同

...,“OracleEBS的接口方式”指的是数据进入OracleEBS的方式,主要有两类技术:1、标准接口表2、标准API前者例如AP的发票接口表,供应商、客户接口表,具体实现方式是,将数据按照接口表规格准备到接口表中,然后运行标准的impor... 查看详情

cfree是啥样的软件

...C/C++代码也还可以用。。C-FREE5的注册码:用户名:tianfang电子邮件:quart@163.com注册码:2NnUqd3shO2agta0xNjcusfK1LXO参考资料:http://www.programarts.com/参考技术A就是一个编译软件,和DEV是一类的东西。不过如果我没记错的话,这不是个免... 查看详情

lotusdomino是啥样的计算机技术?是一门编程语言么?

lotusdomino是IBM的一个oa平台,自带有邮件服务器,可以二次开发OA,本身自带有lotusscript类似于vb,还有公式,java等等都可支持。参考技术A一个办公电子协作平台http://baike.baidu.com/view/736084.htm 查看详情

Parse.com:向 Android 客户端发送本地化推送通知 - 客户端实现是啥样的?

】Parse.com:向Android客户端发送本地化推送通知-客户端实现是啥样的?【英文标题】:Parse.com:SendingalocalizedpushnotificationtoAndroidclient-whatdoestheclientimplementationlooklike?Parse.com:向Android客户端发送本地化推送通知-客户端实现是什么样... 查看详情

微服务架构中的社交 SSO 是啥样的?

】微服务架构中的社交SSO是啥样的?【英文标题】:WhatdoesSocialSSOlooklikeinaMicroservicesArchitecture?微服务架构中的社交SSO是什么样的?【发布时间】:2017-10-1121:44:15【问题描述】:晚上好我正在尝试掌握社交SSO(Facebook/Google等)如何... 查看详情

数据映射器通常是啥样的?

】数据映射器通常是啥样的?【英文标题】:WhatdoesaDataMappertypicallylooklike?数据映射器通常是什么样的?【发布时间】:2009-12-2817:46:13【问题描述】:我有一个名为Cat的表和一个名为Cat的PHP类。现在我想做一个CatDataMapper类,这样C... 查看详情

我的 json 应该是啥样的?使用 Web 套接字发送消息

...:我有两个控制台应用程序-一个Web套接字服务器和一个客户端。客户端控制台应用具有“Light”属性,其状态为on或off/true或false流程:客 查看详情

Objective C 中的 Get Big Endian 函数是啥样的? [关闭]

】ObjectiveC中的GetBigEndian函数是啥样的?[关闭]【英文标题】:WhatwouldbetheGetBigEndianfunctionlookslikeinObjectiveC?[closed]ObjectiveC中的GetBigEndian函数是什么样的?[关闭]【发布时间】:2016-07-2006:41:07【问题描述】:我刚刚浏览了一段Java代码... 查看详情

我的 Kendo 数据源架构必须是啥样的?

】我的Kendo数据源架构必须是啥样的?【英文标题】:WhatmustmyKendodatasourceschemalooklike?我的Kendo数据源架构必须是什么样的?【发布时间】:2013-01-2119:42:28【问题描述】:给定这个json?["CompanyId":20,"CompanyName":"Walmart","CompanyContacts":["... 查看详情

DDMS 分析器中的本机代码是啥样的?

】DDMS分析器中的本机代码是啥样的?【英文标题】:WhatdoesnativecodelooklikeintheDDMSprofiler?DDMS分析器中的本机代码是什么样的?【发布时间】:2014-04-1022:19:26【问题描述】:我知道DDMSprofiler不会分析原生方法调用,我知道我可以使... 查看详情

db2数据库中的time数据类型的形式是啥样的?

是这样表示的吗:12:22:25如果我想把一个时间的属性约束在00:00:00到12:00:00之间,应该怎么定义呢?谢谢参考技术A可以在db2中创建时间字段列时指定字段类型为time型createtablezzz(coltimetime)这样插入的值即为时间类型三段12:2... 查看详情