电子邮件中是否支持JavaScript?
电子邮件中是否支持JavaScript?
http://en.wikipedia.org/wiki/Comparison_of_e-mail_clients
旧的客户端, 例如 Lotus Notes、Mozilla Thunderbird、Outlook Express 和 Windows Live Mail 都似乎支持某种形式的 JavaScript 执行,但其他客户端则不支持。
从安全角度来看,这似乎是个不好的想法,因此我预计即使在这些客户端中,这也不会一直是一个可用的功能。
不行
这取决于情况。但电子邮件不能保证按您希望的方式运行。不同的电子邮件客户端处理JS的方式不同。大多数新的电子邮件客户端都不支持JS,因为在包含如此多个人信息的桌面应用程序中支持脚本执行潜在非常危险。
我有一个使用JS的用例。我在Outlook的Web客户端和桌面客户端上尝试了一下,结果发现Outlook会清除HTML邮件中的脚本部分。可能还有其他支持JS执行的电子邮件客户端,但是由于不能控制电子邮件在客户端机器上的查看位置,因此嵌入任何脚本都不是一个好主意。
建议将HTML电子邮件保持简单化,没有JS,且CSS最少(因为不同的电子邮件客户端对CSS的支持也各不相同)例如:Outlook的Web客户端甚至无法识别电子邮件中的HTML按钮标记。我不得不使用锚标记和一些CSS来模拟按钮的显示。
底线 - 在处理HTML电子邮件内容时,不要依赖于JavaScript。
一般情况下,电子邮件阅读器不允许JavaScript。
其他答案提到了答案是否定的
另一方面,HTML附件可能会在运行Javascript的环境中打开。
编辑:有人认为我没有正确回答问题,所以我会更全面地回答。
总结:我预计,许多或大多数收到包含嵌入式Javascript的HTML格式电子邮件的用户将看到它运行,并进行了一些测试以确认这在某些环境中是正确的。 但是对于某些用户,Javascript将被阻止。
协议(特别是RFC2854)明确涉及文本/ HTML消息正文类型内的脚本编写(Scripting),声明:
此外,HTML 4.0中引入的脚本语言和交互能力引入了许多安全风险,涉及由发送方编写但由接收方解释的程序的自动执行。 执行此类脚本或程序的用户代理必须极其小心,以确保未经信任的软件在受保护的环境中执行。
因此,协议支持Javascript,但哪些用户代理支持呢?
我的(古老的)电子邮件阅读器使用表格来指定每种MIME类型要使用的查看器软件,将HTML内容转发到我最喜欢的Web浏览器。 几乎所有当前的Web浏览器都支持Javascript(有些在您尝试关闭它时会发出严重警告!)。 现代电子邮件代理是否包括内部HTML解释器,如果是,Javascript是否打开或关闭? 我已经检查了Thunderbird的文档,并发现Javascript似乎是默认打开的,但可以关闭: http:// codeverge.com/mozilla.support.thunderbird/simple-html-tags-reference-docume/2030160
我注意到现在有一些(或许很多)用户直接从浏览器中访问他们的电子邮件(webmail是其中之一),而不是运行独立的电子邮件软件。迄今为止我测试过的所有这种平台都会运行邮件消息中嵌入的任何JavaScript。然而,一些此类环境,根据用户安全设置,不会自动获取外部链接(JavaScript、图片或其他),因此只能运行作为消息附件包含的文件中的外部JavaScript。对于设备没有当前互联网连接的任何离线电子邮件阅读器也是如此。<script> document.write('test'); </script>
。Andorid 2.2.44的Outlook、Android 5.208 的K-9、Gmail网络邮件系统(测试于06.11.2017)和Roundcube网络邮件系统0.9.5也是如此。因此,我同意那些认为它在大多数(现代)客户端中不起作用的人的看法。尽管大多数用户使用网络邮件系统,但这些系统似乎在将消息交给浏览器之前剥离了JS,这是有充分理由的。 - Christopher K.您无法将可执行的JavaScript代码放入服务器和邮件客户端中。但是,电子邮件支持链接,您可以在电子邮件中链接到您的内容。
由于安全问题,没有电子邮件客户端支持JavaScript
尝试使用此HTML内容发送电子邮件
<!DOCTYPE html>
<html>
<body>
<button onclick="this.innerHTML=Date()">The time is?</button>
</body>
</html>
这可能存在问题,因为邮件客户端无法读取它,邮件服务器可能会拒绝它。所以最好不要包含它。
简短回答:不支持在电子邮件中使用JavaScript。
详细回答:我已经在两个电子邮件阅读器上进行了测试。Outlook (online)和OE Classic。由于OE Classic非常过时(我在Windows 7上使用它),它确实支持JavaScript,并且我已经用警报按钮进行了测试。然而,较新的Outlook甚至不支持按钮,这显示为纯文本。因此,总结一下,JavaScript仅在某些通常较旧的电子邮件阅读器上启用,但在新的阅读器(如Outlook)上不启用。
电子邮件不支持Javascript。