Gmail,累觉不爱

2015 年 12 月 01 日

近日,FreshInbox 的邮件开发人员 Justin Khoo发表文章表达了对Gmail 的不满,指出Gmail 从多个方面破坏了邮件本身。文章一经发表便引起了网友的热烈讨论。

在文章开篇,Justin 就指出,谷歌在两年前就宣布要利用Scheme.org 来丰富邮件内容。由于Schema.org 允许发件人在邮件中嵌入丰富的元数据,而任何邮件客户端都可以根据结构化的数据展示邮件内容,很多开发人员都认为Gmail 将会和Schema.org 合作,引领邮件的革命性创新。例如,收件人可以在不打开邮件内容的情况下,直接通过邮件主题对产品/ 服务排名或者实时更新航班的预约信息。

然而,根据 Gmail support forum 的消息,Schema.org 完全没有这样的计划。而且,原来计划研发的 Grid View 也在今年莫名的取消了。尽管Gmail API 似乎更吸引眼球,它所吸引的也不过是试图将App 与Gmail 整合在一起的开发人员,而不是设计、自动化和发送邮件的开发人员。是开发人员对邮件创新不感兴趣呢?还是他们只是不看好Gmail 所描绘的前景呢?

重要通知:接下来InfoQ 将会选择性地将部分优秀内容首发在微信公众号中,欢迎关注InfoQ 微信公众号第一时间阅读精品内容。

Gmail 使得开发人员不敢接触 Email

Gmail 和其一大堆的渲染问题是很多开发人员不敢在邮件上开发的主要原因。开发人员期待良好定义和丰富文档的环境,而邮件就是一堆乱七八糟的东西。尽管很多邮件客户端都会遇到渲染问题,在 Gmail 的电脑版和移动设备版中显示邮件才是让开发人员最头疼的地方。

Justin 表示,他不认为 Gmail 故意造成了这样的情况。他更倾向于,Gmail 团队是太热衷于创新,以至于无意间破坏了邮件本身。因此,如果想要更多的开发人员接受 Schema.org 或者 Gmail API,Gmail 首要需要解决的问题就是修复已经破坏的功能和影响。

Gmail 是如何破坏邮件本身的呢?

Gmail 是唯一不支持<style>的邮件客户端。很多刚开始接触邮件的开发人员都非常吃惊,他们竟然不能使用网页开发技术来设计邮件的样式。只有对于 Gmail,每一个 CSS 样式需要内嵌在邮件内。手动把 CSS 样式代码嵌入到邮件中非常耗时,而使用第三方的小工具又会在开发工作流中加入一个非常没有必要的步骤。此外,它还会显著增加邮件的大小。Justin 表示,对于谷歌这样如此注重效率的公司,这种情况不会让其觉得尴尬吗?

Gmail 应用是原生安卓应用的后退。

安卓手机本身一般都会预装邮件客户端应用。针对移动设备,开发人员都会在应用中加入媒体查询(media query)来获得设备的屏幕尺寸,从而调用相应的移动响应式代码,很好的完成邮件在移动屏幕中的渲染工作。然而,Gmail 应用不支持查询操作,使得最新版安卓(Lollipop)内置的邮件客户端无法支持Gmail

多个会议以及Gmail 团队召开的 Reddit 问答环节中,开发人员都对该情况提出了不满。但是,目前仍然没有任何的 Gmail 移动客户端支持媒体查询。

每一种 Gmail 客户端渲染邮件的方式不同!

Justin 指出,用户或许没有注意到,每一种 Gmail 客户端都拥有自己的一些不足之处。因此,在利用这些客户端创建邮件时也各有不同:

  • Gmail.com Webmail。支持<style>,但不支持idclass。
  • ``Gmail Webmail for Businuss。不支持<style>
  • Gmail App for iOS。不支持<style>,而且字体会随机增大 50%
  • Gmail App for Android。不支持<style>,而且随机性忽略容器宽度。
  • Gmail App for Android(针对非 Gmail.com 地址)。不支持<style>、随机性忽略容器宽度以及不支持背景图像
  • Inbox by Gmail for Android。不支持<style>、以一种与 Gmail App for Android 不同的方式随机性忽略容器宽度。
  • Inbox by Gmail for iOS。不支持<style>,但是似乎存在的问题比其他客户端要少。

更严重的是,频繁渲染 Gmail 还会引起不可预知的渲染变化!Justin 表示,在这样的情况下,还有哪个开发人员愿意花时间对 Gmail 邮件进行改进!

帮人帮己

Justin 认为,尽管 Gmail 的表现如此糟糕,很多开发人员仍然对邮件充满了热情。他们依然期待着 Gmail 的 Schema.org 的改进能够成功,而且应用到其他邮件客户端中。Justin 呼唤更多的开发人员能够投入到这样的行列中。同时,Justin 在文章中给出了 Gmail 改善自身影响的若干建议:

  1. Gmail 需要在网页邮件中支持classid,在移动应用中支持媒体查询。
  2. Gmail 需要透露更多有关邮件渲染的技术细节。
  3. Gmail 需要统一所有的客户端,令其给出同样的渲染效果。而且,Gmail 团队最好给相关开发人员一个反馈问题的渠道。
  4. 谷歌应该联合雅虎、微软和 AOL 等创建一个支持 CSS 和 HTML 的统一标准

推动邮件向前发展

尽管文章指出了很多 Gmail 令人不满意的地方,Justin 在文章最后还是对 Gmail 提出了希望。Justin 表示,广大的邮件设计人员和开发人员并不要求 Gmail 一定要十全十美。就像 iOS 版本的邮件客户端一样,只要它能够满足最紧迫的需求(例如,支持 CSS),大家仍然能够忍受,并乐于进行相应开发。Justin 希望,Gmail 也能够拿出这样的心态,与开发人员进行合作共赢。

Justin 的文章一经发表便引起了广泛讨论。很多网友纷纷表示认同,表示Gmail 存在不支持子字符串搜索、转发消息格式混乱以及隐藏邮件时间等问题。针对这些问题,有网友分析其根源可能在于公司理念的问题——管理层以及员工认为,只有重新编写软件才能创造更高的价值、享受更好的收入。因此,相关团队宁可重新编写,也不愿意维护/ 改善现有的软件。此外,有网友认为Gmail 没有采用Schema.org 的原因主要在于后者本身并没有发展成为标准,而力挺Gmail 团队现在的做法。


感谢杜小芳对本文的审校。

给InfoQ 中文站投稿或者参与内容翻译工作,请邮件至 editors@cn.infoq.com 。也欢迎大家通过新浪微博( @InfoQ @丁晓昀),微信(微信号: InfoQChina )关注我们,并与我们的编辑和其他读者朋友交流(欢迎加入 InfoQ 读者交流群(已满),InfoQ 读者交流群(#2))。

2015 年 12 月 01 日 18:002562
用户头像

发布了 268 篇内容, 共 99.3 次阅读, 收获喜欢 14 次。

关注

评论

发布
暂无评论
发现更多内容

架构师训练营——第13周作业

jiangnanage

synchronized实现原理及代码证明各种锁

Darren

源码 synchronized 轻量级锁 偏向锁 Monitor

PageRank

GalaxyCreater

Week13 总结

张磊

windows10 CUDA环境搭建

yuanhang

tensorfl

第13周作业

刘卓

Spring 5 中文解析核心篇-集成测试之TestContext(中)

青年IT男

Spring5 JUnit

架构师训练营——第13周学习总结

jiangnanage

大数据思考

朱月俊

Google 搜索引擎之PageRank 算法

莫莫大人

极客大学架构师训练营

Docker Compose 搭建 Redis Cluster 集群环境

哈喽沃德先生

redis Docker Docker-compose redis集群 redis cluster

极客大学架构师训练营 0 期 week 13 学习笔记

chun1123

大数据 学习

极客大学架构师训练营 0 期 week 13 作业

chun1123

数据分析 PageRank

云栖大会边缘计算分论坛倒计时7天,这2点值得期待

巨侠说

边缘计算

PHP配置管理-yaconf

Dnnn

php

第十三次课

大数据应用场景

朱月俊

week13 小结

Geek_196d0f

公有云常用数据分析指标

张磊

oeasy 教您玩转linux 之 010209 装酷利器 hollywood

o

开始编译第一个typescript实例

程序员学院

Java typescript 前端

java安全编码指南之:Number操作

程序那些事

java安全编码 java安全 安全编码规范

从零开始搭建完整的电影全栈系统(三)——restfulApi的编写

刘强西

RESTful 电影api

手握阿里P8亲传Redis和MongoDB利器,怕什么面试官

小Q

Java 数据库 redis mongodb 面试

第13周学习总结

刘卓

架构师训练营-week13-学习总结

晓-Michelle

极客大学架构师训练营

达达双云双活实践

达达集团运维团队

openresty 微服务治理 多云架构 双活容灾 原生容器

第13周数据分析

陆不得

MySQL中修改数据表存储引擎的三种方法

Matrix Chan

MySQL 运维 数据表引擎

【在云端 003】 星星之火,可以燎原——云时代的IoT

Bora.Don

云计算 IoT AIOT

week13 作业

Geek_196d0f

Gmail,累觉不爱-InfoQ