Реакции на электронные письма позволяют пользователям отвечать на сообщения электронной почты весело и непринужденно, используя эмодзи.
Формат
Реакция на электронное письмо — это обычное электронное письмо в формате 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
содержащий идентификатор сообщения, к которому применяется реакция. Это должен быть один идентификатор сообщения.
text/vnd.google.email-reaction+json
определение части
Эта часть MIME представлена в формате JSON. Она состоит из двух полей:
-
version
: Целое число, представляющее версию формата ответа электронной почты, которому соответствует эта часть. Должно быть равно1
. -
emoji
: строка, представляющая ровно один символ 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 проверяет поле эмодзи. Содержимое должно быть одним из эмодзи, указанных в версии 15 или выше Технического стандарта Unicode 51, включая все упомянутые расширения, например, оттенок кожи. По мере развития стандарта эмодзи Gmail обязуется поддерживать как минимум последнюю версию — 1. Gmail, скорее всего, поддерживает последнюю версию, за исключением периода, необходимого для реализации любого нового стандарта. Если поле отсутствует, пустое или содержит только один эмодзи, Gmail считает эту часть недействительной.
Отображать
Для сообщений с допустимыми фрагментами реакции на электронное письмо Gmail отображает эмодзи в поле рядом с сообщением, указанным в заголовке In-Reply-To
. Здесь также может отображаться количество полученных реакций с этим эмодзи, отправитель реакции и, возможно, другие элементы пользовательского интерфейса. Если заголовок In-Reply-To
отсутствует или сообщение с заданным идентификатором не найдено в цепочке сообщений, Gmail отображает реакцию как обычное электронное письмо. Обратите внимание, что Gmail может не найти сообщение, если пользователь его удалил, цепочка сообщений стала слишком длинной или по ряду других причин.
При отображении недопустимых сообщений о реакции на электронное письмо Gmail отображает часть text/html
, если она существует. В противном случае используется часть text/plain
. Если части текста с этими частями нет, Gmail отображает пустое сообщение.
Пределы
Gmail рекомендует клиентам, желающим добавить поддержку ответов на электронные письма, установить некоторые ограничения, чтобы реакции не перегружали пользователей. В частности:
- Сообщения из списков рассылки не должны допускать реакций.
- Сообщения со слишком большим количеством получателей не должны допускать реакций. (Gmail использует ограничение в 20 отдельных получателей в объединенных полях
To
иCC
.) - Сообщения, в которых получатель не указан в полях
To
илиCC
не должны допускать реакций. - Сообщения, на которые уже есть много реакций, не должны допускать новых реакций. (В Gmail установлено ограничение в 20 реакций на одно сообщение от пользователя.)
Эти и другие ограничения также описаны в разделе «Невозможно отправлять реакции эмодзи» в разделе Ответ на электронные письма с реакциями эмодзи .