Animiertes Symbol im Betreff der E-Mail
Weiß ich über Daten-URIs in die base64
kodierten Daten verwendet werden kann inline-wie Bilder. Heute erhielt ich eine E-Mail tatsächlich eine spam-es war ein animiertes (gif) icon in seinem Thema:
Hier ist das Symbol allein:
Also die einzige Sache, die getan Kreuz meine Gedanken waren alle über die Daten-URIs und wenn Gmail erlaubt irgendeine Art von emoticons eingefügt werden soll, in Betreff. Ich sah die ausführlichen version der E-Mail und wies auf die Betreffzeile an das Bild unten:
Also GIF kommt aus =?UTF-8?B?876Urg==?=
- codierte Zeichenfolge, die ähnlich wie Data-URI-Schema konnte ich aber nicht bekommen Sie das Symbol aus. Hier ist HTML-element Quelle:
Lange Geschichte kurz, es gibt viele emoticons https://mail.google.com/mail/e/XXX
wo XXX
sind hexadezimale zahlen. Sie sind nirgendwo dokumentiert, oder ich konnte ihn nicht finden. Wenn das über Daten-URI, so wie es möglich ist, um Sie in Google Mail die E-Mail-Betreff? (Ich weitergeleitet, die E-Mail an eine yahoo-E-Mail-Konto, sehen [?]
statt icon) und wenn nicht, dann wie, dass codierte string wird geparst?
InformationsquelleAutor der Frage revo | 2015-01-22
Du musst angemeldet sein, um einen Kommentar abzugeben.
Kurze Beschreibung:
Bezeichnet werden intern als
goomoji
und Sie scheinen ein nicht-standard-UTF-8-Erweiterung. Wenn Gmail trifft auf eines dieser Zeichen, es wird ersetzt durch das entsprechende Symbol. Ich war nicht in der Lage zu finden, keine Dokumentation über Sie, aber ich war in der Lage, ein reverse Engineering format.Was sind diese Symbole?
Diese Symbole sind eigentlich die Symbole, die unter "Einfügen von "emoticons" - panel.
Während ich nicht sehen, die
52E
- Symbol in der Liste, gibt es einige andere, die Folgen der gleichen Konvention.B0C
4F4
Beachten Sie, dass es auch einige Symbole, deren Namen vorangestellt, wie
gtalk.03C
. Ich war nicht in der Lage, um zu bestimmen, ob oder wie diese Symbole können in dieser Weise verwendet werden.Was ist das Data-URI-Sache?
Es ist nicht eigentlich ein Daten URIobwohl es teilt einige ähnlichkeiten. Es ist eigentlich eine spezielle syntax für die Kodierung von nicht-ASCII-Zeichen in E-Mail-Fächer, definiert in RFC 2047. Im Grunde funktioniert es so.
So, in unserem Beispiel string, haben wir die folgenden Daten.
charset
=UTF-8
encoding
=B
(base64)data
=876Urg==
So, wie funktioniert es?
Wissen wir, dass irgendwie
876Urg==
bedeutet das Symbol52E
- aber wie?Wenn wir base64 decode
876Urg==
bekommen wir0xf3be94ae
. Diese sieht wie folgt Binär:Diese bits sind im Einklang mit einem 4-byte-UTF-8-codierten Zeichen.
Also die relevanten bits sind die folgenden.:
Oder wenn ausgerichtet:
In hexadezimal, diese bytes sind die folgenden:
Wie Sie sehen können, mit Ausnahme der
FE
Präfix, das vermutlich auf unterschieden dergoomoji
Symbole von anderen UTF-8-Zeichen, entspricht es den52E
in der icon-URL. Einige Tests beweisen, dass dies gilt auch für andere Symbole.Klingt nach viel Arbeit, ist es ein Katalysator?:
Kann dies natürlich auch automatisiert werden. Erstellt habe ich das folgende Python-code für meine Tests. Diese Funktionen können konvertiert die base64-codierten string zu und von den kurzen hex-string gefunden, der in der URL. Hinweis: dieser code ist geschrieben für Python 3, und nicht Python 2 kompatibel.
Konvertierung Funktionen:
Beispiele:
Ausgabe:
Und, natürlich, finden Sie eine Symbol-URL erfordert lediglich die Erstellung eines neuen Entwurfs in Gmail einfügen das Symbol, das Sie wollen, und mit Ihrem browser die DOM-Inspektor.
InformationsquelleAutor der Antwort Alexander O'Mara
Wenn Sie den korrekten hex-code-point (z.B. fe4f4 für "pile of poo') und Wenn es richtig codiert in der Betreffzeile-header, lass es sein, base64 (siehe @AlexanderOMara) oder quoted-printable (
=?utf-8?Q?=F3=BE=93=B4?=
), dann Gmail wird automatisch Parsen und ersetzen Sie es mit dem entsprechenden emoji.Hier ist ein Gmail-emoji-Liste für das kopieren und einfügen in die Betreff-Zeilen - oder E-Mail stellen. Animierte emojis, die werden schnappen Sie sich noch mehr Aufmerksamkeit in der inbox, werden auf einem gelben hintergrund:
InformationsquelleAutor der Antwort lukeA
Vielen Dank Alexander O ' Mara für eine so gut recherchierte Antwort über die goomoji-Tags, die HTML-Bilder!
Ich wollte nur hinzufügen, drei Dinge:
Gibt es noch viele viele emoji (und andere Unicode-Sequenzen erzeugen Bilder) von Spammern und anderen ehemaligen Vermarkter beginnen, verwenden Sie in der E-Mail-Betreff-Zeilen und, dass Google Mail nicht in HTML konvertieren von Bildern. In einigen Browsern erscheinen diese Fett und farbig, die ist fast so schlimm wie die animation. Browser könnte auch wählen zu animieren, aber ich weiß nicht, ob jeder tun. Diese Unicode-Sequenzen angezeigt, die vom browser als Unicode-text, also das genaue Aussehen (Farbe, animiert oder nicht, ...) hängt davon ab, was text-rendering-system, der browser. Das Aussehen eines bestimmten Unicode-emoji hängt auch davon ab, irgendwelche Unicode-variation selectors und emoji-Modifikatoren erscheinen, dass in der Nähe es in den Unicode-code-point Sequenz. Im Gegensatz zu den Bild-basierten emoji-spam, diese Sequenzen können kopiert und eingefügt aus dem browser und in anderen apps als Unicode-text.
Ich hoffe das viele Marketer Lesen dieser StackOverflow-Frage nur Nein sagen. Es ist eine schreckliche Idee, um diese Sequenzen in Ihre E-Mail-Betreff-Zeilen und es wird sofort Trübung, die Sie und Ihre Marke als lowlife Spammer. Es lohnt sich nicht, die "Aufmerksamkeit" Ihres E-Mail erhalten.
Natürlich die erste Frage, die kommen, um aller Munde ist: "wie kann ich diese Sachen loszuwerden?" Zum Glück gibt es das open-source-Greasemonkey/Tampermonkey/Violentmonkey userscript:
Gmail-Betreff Emoji-Roach Motel
Diesem userscript beseitigt sowohl HTML-Bild (Dank tolle Arbeit von Alexander O ' Mara) und pure-Unicode-Typen.
Für die letztere Art, die userscript enthält einen regulären Ausdruck, die für das erfassen der Unicode-Sequenzen wahrscheinlich, missbraucht zu werden von den Vertreibern. Der regex sieht in ES6 Javascript (das userscript übersetzt diese zu weit-unterstützt pre-ES6 regex mit der erstaunlichen ES6 Regex Transpiler):
InformationsquelleAutor der Antwort Louis Semprini