Estoy a punto de enviar un correo electrónico html en un código que puede contener datos de usuario inseguros. Me he dado cuenta de que si html escapo del tema, GMail mostrará el contenido escapado (por lo tanto, si mi asunto es "This & That"
, que sanitizo como "This & That"
, Gmail muestra esto último). Lo mismo aplica para Thunderbird. ¿Es seguro asumir que todos los clientes de correo electrónico no necesitan el tema html escapado?¿Los asuntos del correo electrónico deben ser html escapados?
Respuesta
No es necesario codificar entidades HTML en una línea de asunto. La razón de la codificación en el cuerpo HTML es si está utilizando XHTML que, como deriva de XML, trata &
como un carácter reservado.
Sin embargo, el asunto de un correo electrónico no está en HTML, XML o XHTML. Es solo texto puro. Debido a esto, no es necesario codificar un signo comercial como &
. Si lo codifica, porque no está siendo analizado como HTML, se mostrará como codificado.
Si desea incluir caracteres que no sean ASCII (por ejemplo, £
), debe codificar todo el 'sobre' (incluido el cuerpo del correo electrónico) como UTF-8.
Por lo tanto, en el código, lo siguiente será mostrado como:
| Subject Line | Body
====================================
& | & | &
& | & | &
UTF-8 £ | £ | £
ASCII £ | n/a | n/a
£ | £ | £
Nota: Microsoft Office tiene una aplicación extraña de UTF-8, por lo que no todos los caracteres UTF-8 funcionarán.
El campo Asunto es fuera de del "Contenido HTML". No tiene nada que ver con HTML.
Sin embargo, no tengo una referencia para este ...
Asunto de no necesitan ser html escaparon sin embargo, que se pueden escapar. La especificación SMTP original definió que los mensajes deben ser ascii (RFC822 Sección 3). Esto se confirmó en RFC2822, sin embargo, RFC2047 define extensiones de encabezado que le permiten codificar los campos de encabezado dentro de mensajes de mímica para permitir texto no ascii.
Este formato de palabra codificada le permite usar codificaciones como utf-8 dentro de los encabezados de correo electrónico. Por ejemplo:
=?iso-8859-1?q?this=20is=20some=20text?=
Esta es la versión con codificación ISO-8859-1 de "esto es texto". Este método se puede usar para enodear cosas como el símbolo de libra (£) o los caracteres acentuados/no ascii.
- 1. cómo enviar correo electrónico HTML
- 2. Estilo de correo electrónico HTML
- 3. Correo electrónico HTML en Outlook
- 4. ¿Cuánto tiempo deberían ser los campos de correo electrónico SQL?
- 5. Convertir html web a correo electrónico Html
- 6. ¿Cómo es un correo electrónico HTML?
- 7. Envío de resultados de correo electrónico HTML Correo electrónico que muestra código HTML (Codeigniter Email Class)
- 8. Prellena un correo electrónico con contenido HTML
- 9. Correo electrónico HTML alinea el texto
- 10. Enviando un correo electrónico HTML usando Swift
- 11. Aplicación de formato HTML en el cuerpo del correo electrónico
- 12. Correo electrónico HTML - ¿Está permitido colspan?
- 13. Ofuscación de correo electrónico en html
- 14. Envío de correo electrónico HTML en Django
- 15. Correo electrónico HTML: ¿tablas o divs?
- 16. Enviando correo electrónico HTML usando Python
- 17. Comprensión del correo electrónico seguro
- 18. Enlace de código HTML dentro de un correo electrónico a un archivo adjunto de correo electrónico
- 19. correo electrónico japonés codificación del tema
- 20. ¿Los contextos de datos deben ser estáticos?
- 21. configuración del correo electrónico gitlab
- 22. Convertir datos del encabezado del correo electrónico
- 23. Enviando correo electrónico HTML usando PHP: incluyendo el archivo HTML
- 24. Soporte de cliente de correo electrónico para imágenes PNG en el correo electrónico HTML
- 25. Procesando correo electrónico entrante
- 26. Importar correo electrónico del buzón de AD
- 27. Cómo adjuntar un archivo a un correo electrónico HTML utilizando Apache Commons Correo electrónico
- 28. ¿Debe el encabezado "Fecha" del correo electrónico ser la hora local del remitente o UTC?
- 29. ¿Dónde almacena Django los datos del superusuario/pw/correo electrónico?
- 30. Problema de correo electrónico (enviar hipervínculo en el cuerpo del correo electrónico) android
Si bien no es necesario codificar en HTML el tema, asegúrese de desinfectarlo para el contexto en el que se encuentra: un encabezado HTTP. Elimina los caracteres de salto de línea como '\ n' y' \ r'! –