电子邮件中是否支持JavaScript?

sen*_*hil 125 javascript email

电子邮件中是否支持JavaScript?

Mat*_*tin 43

http://en.wikipedia.org/wiki/Comparison_of_e-mail_clients

老客户端,例如Lotus Notes,Mozilla Thunderbird,Outlook Express和Windows Live Mail似乎都支持某种JavaScript执行.没有别的.

安全性似乎是一个坏主意,所以我希望这是一个不会永远存在的功能,即使在这些客户端也是如此.

  • "Lotus Notes,Mozilla Thunderbird,Outlook Express和Windows Live Mail似乎都支持某种JavaScript执行" - 在消息模板脚本中,而不是收到的电子邮件. (8认同)
  • 哇,这些客户现在已经很老了,关于他们过去常常表现的关系正在消失,我无法确认或否认任何一个.六年后,如果仍有一个电子邮件客户端仍在使用中,并且有意执行任何类型的脚本执行,我会感到惊讶. (2认同)
  • @MatthewMartin 那六年已经过去了。 (2认同)

Ket*_*n R 28

简答


描述性答案

这取决于。但不能保证电子邮件按您希望的方式运行。不同的电子邮件客户端以不同的方式处理 JS。大多数较新的电子邮件客户端都不支持其中任何一项,因为在包含大量个人信息的桌面应用程序中支持脚本执行可能非常危险。

我有一个用例,我需要在电子邮件中使用 JS。我也在 Outlook 和桌面客户端的 Web 客户端上进行了尝试,结果 Outlook 只是清除了 HTML 电子邮件的脚本部分。可能还有其他一些支持 JS 执行的电子邮件客户端,但鉴于您无法控制在客户端计算机中查看电子邮件的客户端,因此在 HTML 电子邮件中嵌入任何脚本并不是一个好主意。

建议让您的 HTML 电子邮件尽可能简单,不要使用 JS,并且可以使用最少的 CSS(因为,同样,不同的电子邮件客户端对 CSS 的支持也不同)例如:outlook 的 Web 客户端甚至无法识别 HTML电子邮件中的按钮标签。我不得不使用锚标记和一些 CSS 来模拟按钮的显示。


底线 - 在处理 HTML 电子邮件内容时不要依赖 Javascript。


Rob*_*ood 16

其他回答者建议答案是"不".

另一方面,html附件可能会在运行Javascript的环境中打开.

编辑:有人建议我没有正确回答这个问题,所以这里有更全面的努力.

简介:我希望接收包含嵌入式Javascript的html格式电子邮件的许多或大多数用户都会看到它运行并运行测试以确认在某些环境中这是真的.但Javascript将被某些用户阻止.

协议(特别是RFC2854)使用以下语句明确地解决脚本(在text/html消息体类型中):

此外,在HTML 4.0中引入脚本语言和交互功能引入了许多与发送者编写的程序的自动执行相关的安全风险,但是由接收者解释.执行此类脚本或程序的用户代理必须非常小心,以确保在受保护的环境中执行不受信任的软件.

所以协议确实支持Javascript,但是哪些用户代理呢?

我的(古代)电子邮件阅读器使用表来指定每种mimetype使用哪种查看器软件,将html内容转移到我最喜欢的Web浏览器.几乎所有当前的Web浏览器都支持Javascript(当您尝试将其关闭时,一些会发出严重警告!)现代电子邮件代理是否包含内部html解释器,如果是这样,javascript是打开还是关闭?我检查了Thunderbird上的文档并发现默认情况下javascript似乎已打开但可以关闭:http: //codeverge.com/mozilla.support.thunderbird/simple-html-tags-reference-docume/2030160

我注意到一些(?很多?)用户现在直接从浏览器访问他们的电子邮件(webmail是一个这样的平台),而不是运行单独的电子邮件软件.到目前为止,我测试的所有这些平台都运行嵌入在电子邮件消息的html中的任何Javascript.但是,某些此类环境(取决于用户安全设置)不会自动获取外部链接(Javascript或图片或其他),因此只能从作为邮件附件包含的文件中运行外部Javascript.没有当前互联网连接的设备上的任何离线电子邮件阅读器也是如此.

以上适用于嵌入在电子邮件正文的主要消息部分中的javascript.还可以将html明确地作为"附件"给出,如果保存然后打开则会在Web浏览器中显示,其中Javascript具有非常高的可能性.因此,可以将javascript启用的电子邮件的第二个副本作为html附件包含在主文本/ html中的替代文本/普通主体和/或标签,从而将用户引导到附件.

我一直在考虑这个问题,因为我的一些熟人坚持要给我发送"电子邮件贺卡",其中包含一条短信,指示我发现一个我发现如此不满意的链接,我甚至拒绝考虑加载它.我已经编写并发送了带有交互式图形和音乐的电子贺卡,甚至使用嵌入式javascript的游戏,并对结果感到满意.

因此,我认为正确的答案是"是",理由是协议专门针对脚本编写,并且基于我个人使用的所有电子邮件代理在我的测试电子邮件中运行Javascript.

  • 您没有提供任何具体的客户端列表,您在其中成功测试了 JS 以及使用了哪些 JS 代码。我使用“原始 HTML”设置检查了 Thunderbird 52.4.0,它确实忽略了 JS `<script> document.write('test'); </script>` 在我的测试电子邮件中。Outlook for Android 2.2.44、K-9 for Android 5.208、Gmail webmailer(06.11.2017 测试)和 Roundcube webmailer 0.9.5 相同。所以我同意那些说它在大多数(现代)客户中不起作用的人。确实,大多数用户都使用网络邮件程序,但有一个很好的理由,它们似乎在将消息交给浏览器之前将 JS 从消息中剥离出来。 (2认同)

jsi*_*ght 15

不,一般来说,电子邮件阅读器不允许使用javascript.

  • 如何在Chrome浏览器中使用gmail? (2认同)