Email reaction examples Stay organized with collections Save and categorize content based on your preferences.
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":1The 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.