ver simbolos para mensaje mail lineas ingles guardar exactas emoticones electrónico electronico cortado correo completo asunto antes agregue gmail base64 data-uri

gmail - simbolos - Ícono animado en el asunto del correo electrónico



mensaje cortado ver mensaje completo (3)

Breve descripción:

Se les conoce internamente como goomoji , y parecen ser una extensión UTF-8 no estándar. Cuando Gmail encuentra uno de estos personajes, se reemplaza por el icono correspondiente. No pude encontrar ninguna documentación sobre ellos, pero pude hacer ingeniería inversa del formato.


¿Qué son estos íconos?

Esos iconos son en realidad los iconos que aparecen debajo del panel "Insertar emoticones".

Si bien no veo el ícono 52E en la lista, hay varios otros que siguen la misma convención.

Tenga en cuenta que también hay algunos iconos cuyos nombres tienen prefijos, como gtalk.03C . No pude determinar si estos iconos se pueden usar de esta manera o de qué manera.


¿Qué es esta cosa de URI de datos?

En realidad no es un URI de datos , aunque comparte algunas similitudes. En realidad, es una sintaxis especial para codificar caracteres no ASCII en asuntos de correo electrónico, definida en RFC 2047 . Basicamente funciona de esta manera.

=?charset?encoding?data?=

Entonces, en nuestra cadena de ejemplo, tenemos los siguientes datos.

=?UTF-8?B?876Urg==?=

  • UTF-8 charset = UTF-8
  • encoding = B (significa base64)
  • data = 876Urg==


¿Entonces, cómo funciona?

Sabemos que de alguna manera, 876Urg== significa el ícono 52E , pero ¿cómo?

Si base64 decodificamos 876Urg== , obtenemos 0xf3be94ae . Esto se parece a lo siguiente en binario:

11110011 10111110 10010100 10101110

Estos bits son consistentes con un carácter codificado UTF-8 de 4 bytes.

11110xxx 10xxxxxx 10xxxxxx 10xxxxxx

Entonces los bits relevantes son los siguientes:

011 111110 010100 101110

O cuando está alineado:

00001111 11100101 00101110

En hexadecimal, estos bytes son los siguientes:

FE52E

Como puede ver, a excepción del prefijo FE que presumiblemente distingue los íconos de goomoji de otros caracteres UTF-8, coincide con el 52E en la URL del ícono. Algunas pruebas demuestran que esto es válido para otros íconos.


Parece mucho trabajo, ¿hay un convertidor ?:

Por supuesto, esto puede ser programado. Creé el siguiente código de Python para mis pruebas. Estas funciones pueden convertir la cadena codificada en base64 hacia y desde la cadena hexadecimal corta que se encuentra en la URL. Tenga en cuenta que este código está escrito para Python 3 y no es compatible con Python 2.

Funciones de conversión:

import base64 def goomoji_decode(code): #Base64 decode. binary = base64.b64decode(code) #UTF-8 decode. decoded = binary.decode(''utf8'') #Get the UTF-8 value. value = ord(decoded) #Hex encode, trim the ''FE'' prefix, and uppercase. return format(value, ''x'')[2:].upper() def goomoji_encode(code): #Add the ''FE'' prefix and decode. value = int(''FE'' + code, 16) #Convert to UTF-8 character. encoded = chr(value) #Encode UTF-8 to binary. binary = bytearray(encoded, ''utf8'') #Base64 encode return end return a UTF-8 string. return base64.b64encode(binary).decode(''utf-8'')

Ejemplos:

print(goomoji_decode(''876Urg=='')) print(goomoji_encode(''52E''))

Salida:

52E 876Urg==

Y, por supuesto, encontrar la URL de un ícono simplemente requiere crear un nuevo borrador en Gmail, insertar el ícono que desee y usar el inspector DOM de su navegador.

Sé acerca de los URI de datos en los que los datos codificados en base64 se pueden usar en línea, como las imágenes. Hoy recibí un correo electrónico realmente spam en el que había un ícono animado (gif) en su asunto:

Aquí está el ícono solo:

Entonces, lo único que se me pasó por la cabeza fue sobre los URI de datos y si Gmail permite que se inserte algún tipo de emoticones en el asunto. Vi la versión detallada completa del correo electrónico y señalé la línea de asunto en la siguiente imagen:

Entonces, el GIF proviene de =?UTF-8?B?876Urg==?= Cadena codificada que es similar al esquema de URI de datos, sin embargo, no pude sacar el ícono. Aquí está la fuente HTML del elemento:

Para resumir, hay muchos emoticones de https://mail.google.com/mail/e/XXX donde XXX son números hexadecimales. No están documentados en ninguna parte o no pude encontrarlo. Si se trata de URI de datos, entonces, ¿cómo es posible incluirlos en el asunto del correo electrónico de Gmail? (Reenvié ese correo electrónico a una cuenta de correo electrónico de yahoo, viendo [?] lugar del icono) y, si no es así, ¿cómo se analiza esa cadena codificada?


¡Muchas gracias a Alexander O''Mara por una respuesta tan bien investigada sobre las imágenes HTML etiquetadas con goomoji!

Solo quería agregar tres cosas:

  • Todavía hay muchos emoji (y otras secuencias Unicode que generan imágenes) que los spammers y otros vendedores antiguos están comenzando a usar en las líneas de asunto del correo electrónico y que Gmail no convierte a imágenes HTML. En algunos navegadores, estos aparecen en negrita y color, lo cual es casi tan malo como la animación. Los navegadores también podrían elegir animarlos, pero no sé si alguno lo hace. El navegador muestra estas secuencias Unicode como texto Unicode, por lo que el aspecto exacto (color o no, animado o no, ...) depende del sistema de representación de texto que utilice el navegador. La apariencia de un emoji Unicode dado también depende de cualquier selector de variación Unicode y modificadores de emoji que aparezcan cerca de él en la secuencia de puntos de código Unicode. A diferencia del spam emoji basado en imágenes, estas secuencias se pueden copiar y pegar fuera del navegador y en otras aplicaciones como texto Unicode.

  • Espero que los vendedores que lean esta pregunta de simplemente digan que no. Es una idea horrible incluir estas secuencias en las líneas de asunto de su correo electrónico e inmediatamente lo empañará a usted y a su marca como spammers de baja vida. No vale la pena la "atención" que recibirá su correo electrónico.

  • Por supuesto, la primera pregunta que viene a la mente de todos es: "¿cómo me deshago de estas cosas?" Afortunadamente existe este código de usuario de código abierto Greasemonkey / Tampermonkey / Violentmonkey:

Línea de asunto de Gmail Emoji Roach Motel

Este script de usuario elimina tanto la imagen HTML (gracias al impresionante trabajo de Alexander O''Mara ) como los tipos Unicode puro.

Para el último tipo, el script de usuario incluye una expresión regular diseñada para capturar las secuencias Unicode que probablemente sean abusadas por los vendedores. El regex se ve así en ES6 Javascript (el script de usuario traduce esto a expresiones regulares pre-ES6 ampliamente compatibles con el increíble ES6 Regex Transpiler ):

var re = /(/p{Emoji_Modifier_Base}/p{Emoji_Modifier}?|/p{Emoji_Presentation}|/p{Emoji}/uFE0F|[/u{2100}-/u{2BFF}/u{E000}-/u{F8FF}/u{1D000}-/u{1F5FF}/u{1F650}-/u{1FA6F}/u{F0000}-/u{FFFFF}/u{100000}-/u{10FFFF}])/s*/gu // which includes the Unicode Emoji pattern from // https://github.com/tc39/proposal-regexp-unicode-property-escapes // plus also these blocks frequently used for spammy emojis // (see https://en.wikipedia.org/wiki/Unicode_block ): // U+2100..U+2BFF Arrows, Dingbats, Box Drawing, ... // U+E000..U+F8FF Private Use Area (gmail generates them for some emoji) // U+1D000..U+1F5FF Musical Symbols, Playing Cards (sigh), Pictographs, ... // U+1F650..U+1FA6F Ornamental Dingbats, Transport and Map symbols, ... // U+F0000..U+FFFFF Supplementary Private Use Area-A // U+100000..U+10FFFF Supplementary Private Use Area-B // plus any space AFTER the discovered emoji spam


Si usa el punto de código hexadecimal correcto (por ejemplo, fe4f4 para ''pile of poo'' ) y si está codificado correctamente dentro del encabezado de la línea de asunto, deje que sea base64 (vea @AlexanderOMara) o citado-imprimible ( =?utf-8?Q?=F3=BE=93=B4?= ), Entonces Gmail lo analizará y reemplazará automáticamente con el emoji correspondiente.

Aquí hay una lista de emojis de Gmail para copiar y pegar en líneas de asunto o cuerpos de correo electrónico. Los emojis animados, que atraerán aún más atención en la bandeja de entrada, se colocan sobre un fondo amarillo: