¿Se admite JavaScript en un mensaje de correo electrónico?
¿Se admite JavaScript en un mensaje de correo electrónico?
Respuestas:
http://en.wikipedia.org/wiki/Comparison_of_e-mail_clients
Los clientes antiguos , como Lotus Notes, Mozilla Thunderbird, Outlook Express y Windows Live Mail, parecen haber admitido algún tipo de ejecución de JavaScript. Nada más lo hace.
Parece una mala idea de seguridad, por lo que esperaría que esta sea una característica que no siempre estará disponible, incluso en estos clientes.
No, en general, los lectores de correo electrónico no permiten JavaScript.
Otros respondedores han sugerido que la respuesta es "No".
Por otro lado, un archivo adjunto html probablemente se abrirá en un entorno que ejecuta Javascript.
EDITAR: Se sugirió que no he respondido correctamente la pregunta, así que aquí va un esfuerzo más completo.
Resumen: esperaría que muchos o la mayoría de los usuarios que reciben un correo electrónico con formato html que contenga Javascript incrustado lo vean ejecutarse y realicen pruebas para confirmar que esto es cierto en algunos entornos. Pero Javascript será bloqueado para algunos usuarios.
Los protocolos (específicamente RFC2854) abordan explícitamente las secuencias de comandos (dentro del tipo de cuerpo del mensaje de texto / html) con la declaración de que:
Además, la introducción de lenguajes de secuencias de comandos y capacidades interactivas en HTML 4.0 introdujo una serie de riesgos de seguridad asociados con la ejecución automática de programas escritos por el remitente pero interpretados por el destinatario. Los agentes de usuario que ejecutan dichos scripts o programas deben tener mucho cuidado para asegurarse de que el software no confiable se ejecute en un entorno protegido.
Entonces, los protocolos son compatibles con Javascript, pero ¿qué agentes de usuario lo hacen?
Mi (antiguo) lector de correo electrónico utiliza una tabla para especificar qué software de visor usar para cada tipo MIME, desviando contenido html a mi navegador web favorito. Casi todos los navegadores web actuales admiten Javascript (¡y algunos emiten advertencias graves cuando intenta desactivarlo!) ¿Los agentes de correo electrónico modernos incluyen intérpretes html internos y, si es así, está activado o desactivado JavaScript? Verifiqué la documentación de Thunderbird y descubrí que javascript parece estar activado de manera predeterminada, pero puede desactivarse: http://codeverge.com/mozilla.support.thunderbird/simple-html-tags-reference-docume/2030160
He notado que algunos (¿muchos?) Usuarios ahora acceden a su correo electrónico directamente desde un navegador (el correo web es una de esas plataformas) en lugar de ejecutar un software de correo electrónico separado. Todas las plataformas que he probado hasta ahora ejecutan cualquier Javascript incrustado en el html del mensaje de correo electrónico. Sin embargo, algunos de estos entornos, dependiendo de la configuración de seguridad del usuario, no obtienen automáticamente enlaces externos (Javascript o imágenes u otros) y, por lo tanto, solo pueden ejecutar Javascript externo desde un archivo que se incluye como un archivo adjunto al mensaje. Lo mismo sería cierto para cualquier lector de correo electrónico fuera de línea en un dispositivo sin una conexión a Internet actual.
Lo anterior se aplica a javascript incrustado en la parte principal del mensaje del cuerpo del correo electrónico. También se puede tener html explícitamente como un "archivo adjunto", que si se guarda y luego se abre se mostrará en un navegador web, en el que Javascript está disponible con una probabilidad muy alta. Por lo tanto, uno podría incluir una segunda copia del correo electrónico habilitado para JavaScript como un archivo adjunto html con un texto alternativo / cuerpo principal y / o etiqueta en el texto principal / html que dirige al usuario al archivo adjunto.
He estado pensando en esto porque algunos de mis conocidos insisten en enviarme "tarjetas de felicitación por correo electrónico" que consisten en un mensaje de texto que me dirige a un enlace que me parece tan insatisfactorio que me niego incluso a considerar cargarlo solo por principio . He escrito y enviado tarjetas de felicitación por correo electrónico con gráficos y música interactivos e incluso juegos que utilizan JavaScript incrustado y estoy satisfecho con el resultado.
Por lo tanto, mantengo que la respuesta correcta es "Sí" tanto porque los protocolos abordan específicamente las secuencias de comandos como porque todos los agentes de correo electrónico que uso personalmente corrieron el Javascript en mis correos electrónicos de prueba.
<script> document.write('test'); </script>
en mis correos electrónicos de prueba. Lo mismo para Outlook para Android 2.2.44, K-9 para Android 5.208, Gmail webmailer (probado 06.11.2017) y Roundcube webmailer 0.9.5. Por lo tanto, estaría de acuerdo con los que dicen que no funciona en la mayoría de los clientes (modernos). Es cierto que la mayoría de los usuarios usan webmailers, pero por una buena razón, estos parecen despojar a JS de los mensajes antes de entregarlos al navegador.
No
Depende. Pero no se garantiza que el correo electrónico se comporte como usted lo desea. Diferentes clientes de correo electrónico manejan JS de manera diferente. La mayoría de los clientes de correo electrónico más nuevos no admiten ninguno de ellos, ya que es potencialmente muy peligroso admitir la ejecución de scripts en una aplicación de escritorio que contiene gran parte de su información personal.
Tuve un caso de uso en el que necesitaba usar JS en un correo electrónico. También probé en el cliente web de Outlook y el cliente de escritorio, y resulta que Outlook simplemente borra la parte del script de su correo electrónico HTML. Puede haber algún otro cliente de correo electrónico que admita la ejecución de JS, pero dado que no puede controlar el cliente donde se vería su correo electrónico en la máquina del cliente, no es una buena idea incrustar ningún script en el correo electrónico HTML.
Se recomienda mantener su correo electrónico HTML lo más simple posible, sin JS, y con el mínimo CSS que pueda hacer (porque, de nuevo, diferentes clientes de correo electrónico también tienen soporte variable para CSS), por ejemplo: el cliente web de Outlook ni siquiera reconocía un HTML etiqueta de botón en el correo electrónico. Tuve que usar una etiqueta de anclaje y algo de CSS encima para imitar la visualización de un botón.
En pocas palabras: no confíe en Javascript cuando trabaje con contenido de correo electrónico HTML.
Javascript no es compatible con los correos electrónicos.
Puede ver un correo electrónico con JavaScript que funciona con Windows Live Mail, pero no puede agregar JavaScript a un nuevo correo electrónico que desea enviar. JavaScript también funciona con archivos .eml guardados. Mozilla Thunderbird versión 60.7.0 no puede ver ni agregar JavaScript. (Si guarda un archivo eml con Thunderbird, el código funcionará si el archivo se carga con Live Mail). Puede enviar un correo electrónico con JavaScript utilizando el código PHP. Algunos sitios web de correo electrónico pueden admitirlo, pero los pocos que utilicé no lo hacen. (AOL, uk2.net, GMail)