Реакции по электронной почте

Реакции по электронной почте позволяют пользователям весело и без проблем отвечать на сообщения электронной почты с помощью смайлов.

Формат

Реакция по электронной почте — это обычное электронное письмо в формате 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 . Если часть имеет неправильный формат, она считается недействительной и сообщение не рассматривается как реакция.

В частности:

  1. Gmail анализирует JSON и проверяет его достоверность. Если JSON имеет неправильный формат, Gmail считает эту часть недействительной.

  2. Gmail проверяет поле версии. Версия должна быть ровно 1. Она должна быть целым числом; это не может быть строка. По мере развития формата могут быть приняты и другие версии. Если версия неизвестна или отсутствует, Gmail считает эту часть недействительной.

  3. Gmail проверяет поле эмодзи. Содержимое должно быть в точности одним из смайлов, указанных в Техническом стандарте Unicode 51 версии 15 или выше, включая любые указанные расширения, например оттенок кожи. По мере развития стандарта эмодзи 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 реакций на пользователя на одно сообщение.)

Эти и другие ограничения также описаны в разделе «Невозможно отправлять эмодзи-реакции» статьи «Ответ на электронные письма с эмодзи-реакциями» .