电子邮件中是否支持JavaScript?


146

电子邮件中是否支持JavaScript?


38
这不值得-1
kikito 2010年

1
目标电子邮件程序是Outlook吗?雷鸟?Gmail?Hotmail?上述所有的?其他?不同的电子邮件程序以不同的方式呈现邮件。
WonderWorker '16

1
我刚刚看到Rockettheme家伙正在倒计时,所以几天又几小时又几秒,而且图形也动画化了……令人惊奇的是现在有什么可能。不知道他们还会怎么做。在Mac邮件客户端中观察到。

2
我找到了一个域,并获得了它-motionmailapp.com

3
@landed我刚刚在WordPress的电子邮件中看到了同样的事情。事实证明,这只是一个动态生成的GIF,它从获取时开始倒计时(并且在45秒后重置-我想如果您在45秒之内没有点击,您可能已经关闭了电子邮件)。
莱昂内尔·罗

Answers:


49

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

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

从安全角度看,这似乎是个坏主意,所以我希望即使在这些客户端中,它也不会永远存在。


9
“ Lotus Notes,Mozilla Thunderbird,Outlook Express和Windows Live Mail似乎都支持某种JavaScript执行” —在消息模板脚本中,而不在收到的电子邮件中。
昆汀

2
哇,这些客户现在太老了,关于他们过去的行为方式的链接正在消失,我无法确认或否认其中的任何一个。六年后,如果有一个仍在使用的电子邮件客户端故意启用了任何类型的脚本执行功能,我会感到惊讶。
马修·马丁

18

不,一般而言,电子邮件阅读器不允许使用JavaScript。


2
Chrome浏览器中的gmail怎么样?
Nicolas S.Xu

1
@ NicolasS.Xu Gmail会将JavaScript从邮件中删除,然后再将其交给浏览器。因此,JS不起作用。我在Firefox 56和Chrome 61中测试了Gmail。还检查了网站管理员工具中的代码,JS代码已删除。
Christopher K.

18

其他答复者建议答案为“否”。

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

编辑:有人建议我没有正确回答问题,因此在此进行了更全面的努力。

简介:我希望接收到包含嵌入式Javascript的html格式电子邮件的许多或大多数用户将看到它运行,并且已经运行测试以确认在某些环境中的确如此。但是Javascript对于某些用户将被阻止。

协议(特别是RFC2854)使用以下语句明确地处理脚本(在text / html消息正文类型内):

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

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

我的(古老的)电子邮件阅读器使用一个表格来指定每种模仿类型要使用的查看器软件,从而将html内容转移到我最喜欢的Web浏览器中。当前几乎所有的Web浏览器都支持Javascript(当您尝试关闭Java时会发出可怕的警告!)现代电子邮件代理程序是否包含内部html解释器,如果是,则打开或关闭JavaScript?我检查了有关Thunderbird的文档,发现javascript默认似乎处于打开状态,但可以关闭:http : //codeverge.com/mozilla.support.thunderbird/simple-html-tags-reference-docume/2030160

我注意到一些(许多用户)现在可以直接从浏览器访问电子邮件(网络邮件就是这样一种平台),而不是运行单独的电子邮件软件。到目前为止,我测试过的所有此类平台都可以运行嵌入在电子邮件html中的任何Javascript。但是,根据用户安全性设置,某些此类环境不会自动获取外部链接(Java脚本,图片或其他),因此只能从包含在消息附件中的文件中运行外部Java脚本。对于没有当前Internet连接的设备上的任何脱机电子邮件阅读器,情况也是如此。

以上内容适用于嵌入在电子邮件正文主要消息部分中的javascript。也可以将html明确地指定为“附件”,如果将其保存然后打开,将在Web浏览器中显示该HTML,其中Javascript的可能性很高。因此,可能会包含第二个以html附件形式启用了javascript的电子邮件,并在主文本/ html中使用替代文本/纯文本主体和/或标签来将用户定向到附件。

我一直在考虑这个问题,因为我的一些熟人坚持要给我发送“电子邮件贺卡”,其中包含一条文本消息,将我定向到一个链接,我发现它并不令人满意,以至于我什至拒绝考虑仅按原则加载它。我已经使用嵌入式Javascript编写并发送了带有交互式图形和音乐甚至游戏的电子邮件贺卡,并对结果感到满意。

因此,我坚持认为正确的答案是“是”,既因为协议专门解决了脚本问题,又因为我个人使用的所有电子邮件代理都在测试电子邮件中运行了Javascript。


2
您没有提供成功测试JS以及使用JS代码的客户端的任何具体列表。我使用“原始HTML”设置检查了Thunderbird 52.4.0,它没有忽略<script> document.write('test'); </script>测试电子邮件中的JS 。适用于Android 2.2.44的Outlook,适用于Android 5.208的K-9,Gmail Webmailer(测试于2017年11月6日)和Roundcube webmailer 0.9.5。因此,我同意那些说它不适用于大多数(现代)客户的说法。的确,大多数用户都使用Webmailer,但是有一个很好的理由,这些用户似乎在将邮件移交给浏览器之前将JS从邮件中删除了。
Christopher K.

1
由于您到Thunderbird“文档”的链接根本不是文档,而是涉及一些用户提供的问题,因此我搜索了一些官方文档,并发现了这一点:developer.mozilla.org/en-US/docs/Mozilla/Thunderbird/Releases / 3 -它说JS在电子邮件中得到了在雷鸟3下降
克里斯托弗K.

14

简短答案

没有


描述性答案

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

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

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


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


4

您不会将可执行JavaScript放入服务器和邮件客户端。但是电子邮件确实支持链接,因此您始终可以链接到电子邮件中的内容。



2

可能是这样,但是邮件客户端不会阅读,邮件服务器可能会拒绝它。因此,请忽略它。


1

电子邮件不支持Javascript。


2
那是不对的。至少Outlook和Outlook Express支持Javascript,这是避免使用Javascript的众多原因之一(出于安全原因)。
PauliL 2010年

1
@PauliL:这取决于您的“受限制的站点”区域设置是否允许。
尼尔·奈特

0

您可以使用Windows Live Mail使用JavaScript来查看电子邮件,但不能将JavaScript添加到要发送的新电子邮件中。JavaScript还可以与保存的.eml文件一起使用。Mozilla Thunderbird 60.7.0版无法查看或添加JavaScript。(如果使用Thunderbird保存了eml文件,则该文件将在Live Mail加载后生效。)您可以使用PHP代码使用JavaScript发送电子邮件。一些电子邮件网站可能支持它,但我使用的少数电子邮件网站不支持。(AOL,uk2.net,GMail)

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.