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}