电子邮件回应功能可让用户使用表情符号以有趣且轻松的方式回复电子邮件。
格式
电子邮件回应是一封采用标准 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。
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 个回应。)
如需了解这些限额和其他限额,请参阅使用表情符号回应来回复电子邮件一文中的“无法发送表情符号回应”部分。