Email reaction examples

Here are several samples of valid and invalid email reaction messages.

Validmultipart/alternative

Email reactions usually have three parts:

  • text/plain: the plain text version of the message.
  • text/vnd.google.email-reaction+json: the reaction part.
  • text/html: the HTML version of the message.

Here's an example:

From: test@google.comMessage-ID: <884457408.1.1697791227669@mail.google.com>Subject: subjectMIME-Version: 1.0In-Reply-To: <2938749223.1.39847234@mail.google.com>Content-Type: multipart/alternative;        boundary="----=_Part_0_2012232625.1697791227635"------=_Part_0_2012232625.1697791227635Content-Type: text/plain; charset=us-asciiContent-Transfer-Encoding: 7bitText body content------=_Part_0_2012232625.1697791227635Content-Type: text/vnd.google.email-reaction+json; charset=UTF-8Content-Transfer-Encoding: quoted-printable{"emoji":"=F0=9F=99=83","version":1}------=_Part_0_2012232625.1697791227635Content-Type: text/html; charset=UTF-8Content-Transfer-Encoding: quoted-printable<h1>HTML body content</h1>------=_Part_0_2012232625.1697791227635--

Single valid body part

Email reactions can also just have a single body part like:

From: test+no-reply@google.comMessage-ID: <940553268.0.1697791227697@mail.google.com>Subject: subjectMIME-Version: 1.0In-Reply-To: <2938749223.1.39847234@mail.google.com>Content-Type: text/vnd.google.email-reaction+json; charset="UTF-8"Content-Transfer-Encoding: quoted-printable{"emoji":"=F0=9F=99=83","version":1}

Note that theContent-Transfer-Encoding can be any standard encoding:

From: test+no-reply@google.comMessage-ID: <940553268.0.1697791227697@mail.google.com>Subject: subjectMIME-Version: 1.0In-Reply-To: <2938749223.1.39847234@mail.google.com>Content-Type: text/vnd.google.email-reaction+jsonContent-Transfer-Encoding: base64ewogICJlbW9qaSI6ICLwn46JIiwKICAidmVyc2lvbiI6IDEKfQ==

For binary encodings, likebase64, the JSON must be encoded as UTF-8.

Valid nestedmultipart/alternative inmultipart/related

If the reaction is to a message that had inline attachments, it's possible togenerate a message with amultipart/related body part that contains theattachments plus amultipart/alternative part like the previous example.

From: test@google.comMessage-ID: <913190639.2.1697793303663@mail.google.com>Subject: subjectMIME-Version: 1.0In-Reply-To: <2938749223.1.39847234@mail.google.com>Content-Type: multipart/related;        boundary="----=_Part_0_2012232625.1697793303618"------=_Part_0_2012232625.1697793303618Content-Type: multipart/alternative;        boundary="----=_Part_1_984213526.1697793303621"------=_Part_1_984213526.1697793303621Content-Type: text/plain; charset=us-asciiContent-Transfer-Encoding: 7bitText body content------=_Part_1_984213526.1697793303621Content-Type: text/vnd.google.email-reaction+jsonContent-Transfer-Encoding: base64ewogICJlbW9qaSI6ICLwn46JIiwKICAidmVyc2lvbiI6IDEKfQ==------=_Part_1_984213526.1697793303621Content-Type: text/html; charset=UTF-8Content-Transfer-Encoding: quoted-printable<h1>HTML body content</h1>------=_Part_1_984213526.1697793303621--------=_Part_0_2012232625.1697793303618Content-Type: image/pngContent-Transfer-Encoding: base64Content-Disposition: attachment; filename="1x1.png"iVBORw0KGgoAAAANSUhEUgAAAAEAAAABAQMAAAAl21bKAAAAA1BMVEUAAACnej3aAAAAAXRSTlMAQObYZgAAAApJREFUCNdjYAAAAAIAAeIhvDMAAAAASUVORK5CYII=------=_Part_0_2012232625.1697793303618--

(Note that themultipart/related body part should have other fields asspecified byRFC2387 but those are irrelevant fordetermining whether an email reaction is valid.)

InvalidJSON format

The following reaction is invalid because the JSON is missing the closing brace:

From: test+no-reply@google.comMessage-ID: <940553268.0.1697791227697@mail.google.com>Subject: subjectMIME-Version: 1.0In-Reply-To: <2938749223.1.39847234@mail.google.com>Content-Type: text/vnd.google.email-reaction+json; charset="UTF-8"Content-Transfer-Encoding: quoted-printable{"emoji":"=F0=9F=99=83","version":1

The following reaction is invalid because the JSON has a trailing comma:

From: test+no-reply@google.comMessage-ID: <940553268.0.1697791227697@mail.google.com>Subject: subjectMIME-Version: 1.0In-Reply-To: <2938749223.1.39847234@mail.google.com>Content-Type: text/vnd.google.email-reaction+json; charset="UTF-8"Content-Transfer-Encoding: quoted-printable{"emoji":"=F0=9F=99=83","version":1,}

Invalidversion field

The following reaction is invalid because it's missing theversion field:

From: test+no-reply@google.comMessage-ID: <940553268.0.1697791227697@mail.google.com>Subject: subjectMIME-Version: 1.0In-Reply-To: <2938749223.1.39847234@mail.google.com>Content-Type: text/vnd.google.email-reaction+json; charset="UTF-8"Content-Transfer-Encoding: quoted-printable{"emoji":"=F0=9F=99=83"}

The following reaction is invalid because theversion field isn't1:

From: test+no-reply@google.comMessage-ID: <940553268.0.1697791227697@mail.google.com>Subject: subjectMIME-Version: 1.0In-Reply-To: <2938749223.1.39847234@mail.google.com>Content-Type: text/vnd.google.email-reaction+json; charset="UTF-8"Content-Transfer-Encoding: quoted-printable{"emoji":"=F0=9F=99=83","version":2}

Invalidemoji field

The following reaction is invalid because theemoji field is empty:

From: test+no-reply@google.comMessage-ID: <940553268.0.1697791227697@mail.google.com>Subject: subjectMIME-Version: 1.0In-Reply-To: <2938749223.1.39847234@mail.google.com>Content-Type: text/vnd.google.email-reaction+json; charset="UTF-8"Content-Transfer-Encoding: quoted-printable{"emoji":"","version":1}

The following reaction is invalid because theemoji field doesn't contain avalid emoji.

From: test+no-reply@google.comMessage-ID: <940553268.0.1697791227697@mail.google.com>Subject: subjectMIME-Version: 1.0In-Reply-To: <2938749223.1.39847234@mail.google.com>Content-Type: text/vnd.google.email-reaction+json; charset="UTF-8"Content-Transfer-Encoding: quoted-printable{"emoji":"A","version":1}

The following reaction is invalid because the ❤ emoji is missing between thetwo zero-width joiner (ZWJ) characters. Note that the = character at the end ofthe first content line represents a soft line break in the Quoted-Printableencoding.

From: test+no-reply@google.comMessage-ID: <940553268.0.1697791227697@mail.google.com>Subject: subjectMIME-Version: 1.0In-Reply-To: <2938749223.1.39847234@mail.google.com>Content-Type: text/vnd.google.email-reaction+json; charset="UTF-8"Content-Transfer-Encoding: quoted-printable{"emoji":"=F0=9F=91=A9=F0=9F=8F=BC=E2=80=8D=E2=80=8D=F0=9F=91=A8=F0=9F=8F=BE",="version":1}

Except as otherwise noted, the content of this page is licensed under theCreative Commons Attribution 4.0 License, and code samples are licensed under theApache 2.0 License. For details, see theGoogle Developers Site Policies. Java is a registered trademark of Oracle and/or its affiliates.

Last updated 2025-12-11 UTC.