借助电子邮件回应功能,用户可以使用表情符号以轻松有趣的方式回复电子邮件。
格式
电子邮件回应是一种采用 MIME 格式的常规电子邮件,其中包含一个特殊部分,用于指明其为回应。
整体消息格式
电子邮件必须包含正文部分,其中包含格式符合定义中所述的 Content-Type:
text/vnd.google.email-reaction+json
。
身体部位是指:
- 邮件的顶级部分。这意味着电子邮件的
Content-Type
标头为text/vnd.google.email-reaction+json
。 - 多部分 MIME 部分的子部分,其
Content-Type
为text/vnd.google.email-reaction+json
,且Content-Disposition
不为attachment
。
回应电子邮件还应包含常规的 text/plain
和 text/html
部分,以便不支持电子邮件回应的电子邮件客户端仍能显示回应内容。Gmail 建议将 text/vnd.google.email-reaction+json
部分放置在 text/plain
和 text/html
部分之间。这是因为,无论是否实际了解其 MIME 类型,某些电子邮件客户端始终会显示最后一部分。同样,某些电子邮件客户端只会显示第一部分。
该电子邮件还应包含一个 In-Reply-To
标头,其中包含所应用回应的邮件的邮件 ID。此 ID 必须是单个消息 ID。
text/vnd.google.email-reaction+json
部分定义
此 MIME 部分采用 JSON 格式。它包含两个字段:
version
:一个整数,表示此部分遵循的电子邮件回应格式版本。此值必须为1
。emoji
:一个字符串,表示 Unicode 技术标准 51 中定义的恰好一个表情符号。
如果 Content-Transfer-Encoding
采用二进制格式,则 JSON 必须使用 UTF-8 字符编码。否则,Content-Transfer-Encoding
可以是任何标准编码。
Gmail 对 text/vnd.google.email-reaction+json
的解读
当 Gmail 收到看起来像回应的邮件时,会验证回应部分,并对该邮件应用特殊的显示处理。
验证
Gmail 会验证收到的所有包含 text/vnd.google.email-reaction+json
部分的邮件。如果该部分格式有误,则会被视为无效,并且系统不会将消息视为回应。
具体而言:
Gmail 会解析 JSON 并检查其有效性。如果 JSON 格式有误,Gmail 会将相应部分视为无效。
Gmail 会检查版本字段。版本必须为 1。此值必须为整数,不能为字符串。随着格式的不断演变,我们可能会接受其他版本。如果版本未知或缺失,Gmail 会将该部分视为无效。
Gmail 会检查表情符号字段。内容必须是 Unicode 技术标准 51 版本 15 或更高版本中指定的表情符号之一,包括任何引用的扩展(例如肤色)。随着表情符号标准的不断演变,Gmail 承诺至少支持最新版本 - 1。Gmail 可能支持最新版本,但需要等待一段时间才能实现任何新发布的标准。如果该字段缺失、为空或不包含恰好一个表情符号,则 Gmail 会将该部分视为无效。
展示广告
对于包含有效电子邮件回应部分的邮件,Gmail 会在 In-Reply-To
标头指定的邮件附近的表情符号字段中显示表情符号。这可能还包括收到该表情符号回应的数量,可能显示该回应的发送者,以及可能的其他界面处理方式。如果缺少 In-Reply-To
标头,或者对话会话中找不到具有给定 ID 的消息,Gmail 会将回应消息显示为普通电子邮件。请注意,由于用户删除了邮件、会话过长或其他任何原因,Gmail 可能无法找到邮件。
在显示无效的电子邮件回应消息时,Gmail 会显示 text/html
部分(如果有)。否则,它会使用 text/plain
部分。如果没有任何身体部位具有这两种属性,Gmail 会显示一条空消息。
限制
Gmail 建议希望添加电子邮件回应功能的客户端添加一些限制,以防止回应数量过多而让用户感到不堪重负。具体而言:
- 邮寄名单中的消息不应允许回应。
- 收件人过多的消息不应允许回应。(Gmail 在组合使用
To
和CC
字段时,收件人数量上限为 20 位。) - 如果收件人不在
To
或CC
字段中,则不应允许对邮件添加回应。 - 已经收到很多回应的邮件不应再允许回应。(Gmail 对每封邮件设置了每位用户 20 个回应的限制。)
使用表情符号回应来回复电子邮件的“无法发送表情符号回应”部分下也介绍了这些限制和其他限制。