如何保存javascript代码生成的html,以便通过电子邮件发送?

时间:2015-07-13 15:51:00

标签: javascript c# html angularjs html-email

我想转换我编写的C#API,并生成(静态)html页面(主要用于渲染数据表),使用angularjs。目标是更好地分离数据和html,允许交互(例如,按列排序)/重复使用数据,这超出了静态html页面所能提供的范围。

现在的问题是,只要我使用JS生成部分页面,我就不能再通过电子邮件发送html文档,因为JS不会从电子邮件客户端执行。然而,这是我的API的一个有用功能。

有办法吗?

我想我曾经听说过一个虚拟浏览器(在节点中?),它可以执行所有的javascript(没有GUI),然后将html转储到一个文件中。

否则,我能想到的唯一解决方案是让C#生成表,硬编码html中的值(目前就是这种情况),并让angularjs仍然执行所有json后处理以允许用户与数据交互。令人烦恼的是,它需要复制C#和JS中的一些表构造逻辑,这不是很好。

2 个答案:

答案 0 :(得分:1)

如果您想发送电子邮件,请在Angular中实施service调用某些服务器端功能来发送电子邮件。数据应作为某种视图模型传递。在ASP.NET中,此服务器端功能通常通过Web API或通用处理程序(.ashx)公开。

如果您希望用户能够直接从页面下载文件,请查看How to trigger a file download when clicking an html button or javascript

应该注意的是,直接使用用于网页的HTML通常不是包含在电子邮件中的好主意。电子邮件客户端中的HTML解析器差异很大,您应该只使用一小部分HTML功能来确保兼容性。用于浏览器的HTML通常还包含不适合电子邮件的额外内容(例如导航菜单)。

答案 1 :(得分:1)

使用Mailing API是否值得考虑?在这种情况下,您可以抓住内容并使用angular将其发送到e。 G。 Sendgrid。