Esempi di reazioni via email

Ecco alcuni esempi di messaggi di reazione email validi e non validi.

Periodo di validità: multipart/alternative

Le reazioni via email di solito sono costituite da tre parti:

  • text/plain: la versione in testo normale del messaggio.
  • text/vnd.google.email-reaction json: la parte relativa alla reazione.
  • text/html: la versione HTML del messaggio.

Ecco un esempio:

From: [email protected]
Message-ID: <[email protected]>
Subject: subject
MIME-Version: 1.0
In-Reply-To: <[email protected]>
Content-Type: multipart/alternative;
        boundary="----=_Part_0_2012232625.1697791227635"

------=_Part_0_2012232625.1697791227635
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit

Text body content
------=_Part_0_2012232625.1697791227635
Content-Type: text/vnd.google.email-reaction json; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

{"emoji":"=F0=9F=99=83","version":1}
------=_Part_0_2012232625.1697791227635
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

<h1>HTML body content</h1>
------=_Part_0_2012232625.1697791227635--

Una singola parte del corpo valida

Le reazioni via email possono anche avere una sola parte del corpo, ad esempio:

From: test [email protected]
Message-ID: <[email protected]>
Subject: subject
MIME-Version: 1.0
In-Reply-To: <[email protected]>
Content-Type: text/vnd.google.email-reaction json; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

{"emoji":"=F0=9F=99=83","version":1}

Tieni presente che Content-Transfer-Encoding può essere qualsiasi codifica standard:

From: test [email protected]
Message-ID: <[email protected]>
Subject: subject
MIME-Version: 1.0
In-Reply-To: <[email protected]>
Content-Type: text/vnd.google.email-reaction json
Content-Transfer-Encoding: base64

ewogICJlbW9qaSI6ICLwn46JIiwKICAidmVyc2lvbiI6IDEKfQ==

Per le codifiche binarie, come base64, il file JSON deve essere codificato come UTF-8.

multipart/alternative nidificato valido in multipart/related

Se la reazione è a un messaggio con allegati in linea, è possibile genera un messaggio con una parte del corpo multipart/related che contiene allegati più una parte multipart/alternative come nell'esempio precedente.

From: [email protected]
Message-ID: <[email protected]>
Subject: subject
MIME-Version: 1.0
In-Reply-To: <[email protected]>
Content-Type: multipart/related;
        boundary="----=_Part_0_2012232625.1697793303618"

------=_Part_0_2012232625.1697793303618
Content-Type: multipart/alternative;
        boundary="----=_Part_1_984213526.1697793303621"

------=_Part_1_984213526.1697793303621
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit

Text body content
------=_Part_1_984213526.1697793303621
Content-Type: text/vnd.google.email-reaction json
Content-Transfer-Encoding: base64

ewogICJlbW9qaSI6ICLwn46JIiwKICAidmVyc2lvbiI6IDEKfQ==
------=_Part_1_984213526.1697793303621
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

<h1>HTML body content</h1>
------=_Part_1_984213526.1697793303621--

------=_Part_0_2012232625.1697793303618
Content-Type: image/png
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename="1x1.png"

iVBORw0KGgoAAAANSUhEUgAAAAEAAAABAQMAAAAl21bKAAAAA1BMVEUAAACnej3aAAAAAXRSTlMA
QObYZgAAAApJREFUCNdjYAAAAAIAAeIhvDMAAAAASUVORK5CYII=
------=_Part_0_2012232625.1697793303618--

Tieni presente che la parte del corpo multipart/related deve avere altri campi come specificato da RFC2387, ma non sono pertinenti per determinare se una reazione email è valida.)

Formato JSON non valido

La seguente reazione non è valida perché nel JSON manca la parentesi graffa di chiusura:

From: test [email protected]
Message-ID: <[email protected]>
Subject: subject
MIME-Version: 1.0
In-Reply-To: <[email protected]>
Content-Type: text/vnd.google.email-reaction json; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

{"emoji":"=F0=9F=99=83","version":1

La seguente reazione non è valida perché il codice JSON ha una virgola finale:

From: test [email protected]
Message-ID: <[email protected]>
Subject: subject
MIME-Version: 1.0
In-Reply-To: <[email protected]>
Content-Type: text/vnd.google.email-reaction json; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

{"emoji":"=F0=9F=99=83","version":1,}

Campo version non valido

La seguente reazione non è valida perché manca il campo version:

From: test [email protected]
Message-ID: <[email protected]>
Subject: subject
MIME-Version: 1.0
In-Reply-To: <[email protected]>
Content-Type: text/vnd.google.email-reaction json; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

{"emoji":"=F0=9F=99=83"}

La seguente reazione non è valida perché il campo version non è 1:

From: test [email protected]
Message-ID: <[email protected]>
Subject: subject
MIME-Version: 1.0
In-Reply-To: <[email protected]>
Content-Type: text/vnd.google.email-reaction json; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

{"emoji":"=F0=9F=99=83","version":2}

Campo emoji non valido

La seguente reazione non è valida perché il campo emoji è vuoto:

From: test [email protected]
Message-ID: <[email protected]>
Subject: subject
MIME-Version: 1.0
In-Reply-To: <[email protected]>
Content-Type: text/vnd.google.email-reaction json; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

{"emoji":"","version":1}

La seguente reazione non è valida perché il campo emoji non contiene un emoji valida.

From: test [email protected]
Message-ID: <[email protected]>
Subject: subject
MIME-Version: 1.0
In-Reply-To: <[email protected]>
Content-Type: text/vnd.google.email-reaction json; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

{"emoji":"A","version":1}

La seguente reazione non è valida perché manca l'emoji ❤ tra i due caratteri di joiner di larghezza pari a zero (ZWJ). Nota che il carattere = alla fine di la prima riga dei contenuti rappresenta un'interruzione di riga morbida nel codifica.

From: test [email protected]
Message-ID: <[email protected]>
Subject: subject
MIME-Version: 1.0
In-Reply-To: <[email protected]>
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}