在电子邮件消息中是否支持JavaScript ?

在电子邮件消息中是否支持JavaScript ?

124267 次浏览

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

对于大多数邮件客户端来说,没有。

在电子邮件中不支持Javascript。

它可能是,但是邮件客户端不会读取它。邮件服务器可能会拒绝它。所以把它放一边。

您不会将可执行的JavaScript放到服务器和邮件客户机上。但是电子邮件确实支持链接,你可以在电子邮件中链接到你的内容。

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

老客户,如Lotus Notes, Mozilla Thunderbird, Outlook Express和Windows Live Mail似乎都支持某种JavaScript执行。其他的都不行。

从安全角度来看,这似乎是一个坏主意,所以我希望这个功能不会一直存在,即使是在这些客户机中。

其他回答的人认为答案是“不”。

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

编辑:有人认为我没有正确地回答这个问题,所以这里有一个更完整的努力。

总结:我希望许多或大多数用户在收到包含嵌入式Javascript的html格式电子邮件时会看到它运行,并运行测试以确认在某些环境中这是正确的。但是Javascript会被一些用户阻塞。

协议(特别是RFC2854)显式地解决脚本(在text/html消息体类型中),声明如下:

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

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

我的(古老的)电子邮件阅读器使用一个表来指定每个mimetype使用哪个查看器软件,将html内容转移到我最喜欢的网络浏览器。目前几乎所有的浏览器都支持Javascript(当你试图关闭它时,一些浏览器会发出可怕的警告!)现代电子邮件代理包括内部html解释器,如果是,是javascript打开还是关闭?我检查了雷鸟的文档,发现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。我也在outlook的网页客户端和桌面客户端上进行了测试,结果发现outlook会删除HTML电子邮件中的脚本部分。可能有其他一些支持JS执行的电子邮件客户端,但考虑到您无法控制客户端,在客户端机器中查看您的电子邮件,在HTML电子邮件中嵌入任何脚本不是一个好主意。

建议让你的HTML电子邮件尽可能简单,没有JS,和最少的CSS(因为,再次强调,不同的电子邮件客户端也有不同的CSS支持),例如:outlook的web客户端甚至不能识别电子邮件中的HTML按钮标签。我必须使用一个锚标记和一些CSS在它上面来模拟按钮的显示。


底线-当使用HTML电子邮件时,不要依赖Javascript 内容。< / p >
你可以在Windows Live Mail中使用JavaScript查看电子邮件,但不能将JavaScript添加到你想发送的新电子邮件中。 JavaScript也适用于保存的.eml文件。 Mozilla Thunderbird版本60.7.0无法查看或添加JavaScript。 (如果你保存一个eml文件与雷鸟,代码将工作,如果文件然后加载Live邮件) 你可以使用PHP代码用JavaScript发送电子邮件。 一些电子邮件网站可能支持它,但我用过的几个网站不支持。(AOL, uk2.net, GMail)

出于安全考虑,电子邮件客户端不支持javascript

尝试发送带有此HTML内容的邮件

     <!DOCTYPE html>
<html>
<body>
<button onclick="this.innerHTML=Date()">The time is?</button>
</body>
</html>

简短的回答:不,在电子邮件消息中不支持

< >强劲长答: 我用两个电子邮件阅读器对它进行了测试。前景(在线)OE经典。由于OE Classic非常过时(我在windows 7上使用它),它确实支持JavaScript,我用警报按钮测试了它。不过,新版Outlook甚至不支持按钮,只能以纯文本的形式显示。所以得出的结论是JavaScript只在一些通常较老的电子邮件阅读器上启用,而在Outlook等新阅读器上则不启用