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

Функция реакций на электронные письма позволяет пользователям отвечать на сообщения электронной почты в увлекательной и удобной форме, используя эмодзи.

Формат

Электронное письмо с реакцией — это обычное письмо в формате 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 : Строка, представляющая ровно один символ эмодзи, как определено в техническом стандарте Unicode 51 .

If the Content-Transfer-Encoding is a binary format, then JSON must use UTF-8 character encoding. Otherwise, the Content-Transfer-Encoding can be any standard 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 проверяет поле с эмодзи. Содержимое должно точно соответствовать одному из эмодзи, указанных в версии 15 или выше технического стандарта Unicode 51, включая любые упомянутые расширения, такие как тон кожи. По мере развития стандарта эмодзи Gmail обязуется поддерживать как минимум последнюю версию — 1. Вероятно, Gmail поддерживает последнюю версию, за исключением периода, необходимого для внедрения любого нового стандарта. Если поле отсутствует, пустое или не содержит ровно один эмодзи, Gmail считает эту часть недействительной.

Отображать

Для сообщений с допустимыми частями реакции Gmail отображает эмодзи в поле для эмодзи рядом с сообщением, указанным в заголовке In-Reply-To . Это также может включать количество полученных реакций с этим эмодзи, отправителя реакции и, возможно, другие элементы пользовательского интерфейса. Если заголовок In-Reply-To отсутствует или сообщение с указанным ID не найдено в цепочке переписки, Gmail отображает сообщение с реакцией как обычное электронное письмо. Обратите внимание, что Gmail может не найти сообщение, потому что пользователь удалил его, цепочка стала слишком длинной или по ряду других причин.

При отображении некорректных сообщений-реакций Gmail отображает часть text/html , если она существует. В противном случае используется часть text/plain . Если в теле сообщения отсутствует какая-либо из этих частей, Gmail отображает пустое сообщение.

Пределы

Gmail рекомендует клиентам, желающим добавить поддержку реакций на электронные письма, установить некоторые ограничения, чтобы предотвратить чрезмерное количество реакций у пользователей. В частности:

  • Сообщения из списков рассылки не должны допускать реакций.
  • Сообщения со слишком большим количеством получателей не должны допускать реакций. (Gmail устанавливает ограничение в 20 различных получателей в полях To и CC .)
  • В сообщениях, где получатель не указан в полях To или CC , нельзя разрешать реакцию.
  • Сообщения, у которых уже много реакций, не должны допускать добавления реакций. (Gmail устанавливает ограничение в 20 реакций на одно сообщение для каждого пользователя.)

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