电子邮件中是否支持 JavaScript?
电子邮件中是否支持 JavaScript?
http://en.wikipedia.org/wiki/Comparison_of_e-mail_clients
旧客户端,例如 Lotus Notes、Mozilla Thunderbird、Outlook Express 和 Windows Live Mail,似乎都支持某种 JavaScript 执行。其他什么都不做。
从安全角度来看,这似乎是一个坏主意,所以我希望这是一个并不总是存在的功能,即使在这些客户端中也是如此。
简答
不
描述性答案
这取决于。但不能保证电子邮件会按照您希望的方式运行。不同的电子邮件客户端以不同的方式处理 JS。大多数较新的电子邮件客户端都不支持其中任何一项,因为在包含大量个人信息的桌面应用程序中支持脚本执行可能非常危险。
我有一个用例,我需要在电子邮件中使用 JS。我也在 Outlook 和桌面客户端的 Web 客户端上进行了尝试,结果 Outlook 只是清除了 HTML 电子邮件的脚本部分。可能还有其他一些支持 JS 执行的电子邮件客户端,但鉴于您无法控制在客户端机器中查看电子邮件的客户端,因此在 HTML 电子邮件中嵌入任何脚本并不是一个好主意。
建议让您的 HTML 电子邮件尽可能简单,不要使用 JS,并且可以使用最少的 CSS(因为,同样,不同的电子邮件客户端对 CSS 的支持也不同)例如:outlook 的 Web 客户端甚至无法识别 HTML电子邮件中的按钮标签。我不得不使用锚标记和一些 CSS 来模拟按钮的显示。
底线 - 在处理 HTML 电子邮件内容时不要依赖 Javascript。
不,一般来说电子邮件阅读器不允许使用 javascript。
其他回答者建议答案是否定的。
另一方面,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
我注意到一些(?许多?)用户现在直接从浏览器访问他们的电子邮件(网络邮件就是一个这样的平台),而不是运行单独的电子邮件软件。到目前为止,我测试过的所有此类平台都运行嵌入在电子邮件消息的 html 中的任何 Javascript。然而,根据用户安全设置,某些此类环境不会自动获取外部链接(Javascript 或图片或其他),因此只能从作为邮件附件包含的文件运行外部 Javascript。对于没有当前互联网连接的设备上的任何离线电子邮件阅读器,情况也是如此。
以上适用于嵌入在电子邮件正文的主要消息部分中的 javascript。还可以将 html 明确指定为“附件”,如果保存然后打开,将显示在 Web 浏览器中,其中 Javascript 很有可能可用。因此,可以将启用 javascript 的电子邮件的第二个副本作为 html 附件包含在主文本/html 中的替代文本/纯正文和/或标签中,将用户引导至附件。
我一直在考虑这个,因为我的一些熟人坚持给我发送“电子邮件贺卡”,其中包含一条短信,将我定向到一个链接,我觉得这个链接很不满意,我什至拒绝考虑加载它只是原则上. 我已经编写并发送了带有交互式图形和音乐的电子邮件贺卡,甚至是使用嵌入式 javascript 的游戏,并且对结果感到满意。
因此,我认为正确的答案是“是”,因为协议专门针对脚本编写,而且我个人使用的所有电子邮件代理都在我的测试电子邮件中运行了 Javascript。
您不会将可执行的 JavaScript 放到服务器和邮件客户端中。但是电子邮件确实支持链接,您始终可以在电子邮件中链接到您的内容。