我正在创建一个网站,该网站将提供在网站的最终页面上向用户发送动态,代码隐藏,计算驱动内容的副本的选项。要发送电子邮件,我会在用户单击按钮时再次从模型对象获取计算值,手动编写所有HTML标记,将模型数据粘贴到需要的位置。
我的问题是:有没有更简单的方法将网站输出复制到HTML格式的电子邮件?我目前手工编写HTML电子邮件代码,并希望能够获得呈现的HTML的副本,并可以从那里修改它。
答案 0 :(得分:0)
您可以使用asp.net
访问最终准备渲染的htmlResponse.WriteFile("filename");
方法
答案 1 :(得分:0)
最简单的方法(至少对我而言)是实际创建一个网页,执行您希望它执行的所有操作,然后使用System.Net.WebClient
或System.Net.HttpWebRequest
进行删除。
所以你有Page1.aspx
允许一个人选择一些东西并提交一个表格,然后你得到Email1.aspx
这是最终输出。提交Page1.aspx
时,使用WebClient
下载Email1.aspx
的内容,可能会在需要时传递查询字符串或一些Cookie。用户永远不会“看到”Email1.aspx
(当然,除了在他们的电子邮件中),它只是在幕后使用。
这种方法的优点是您可以测试HTML输出而无需跳过SMTP箍。在Email1.aspx
页面中,如果需要修改HTML,还可以覆盖OnRender()
方法(我认为可能是一个,可能有不同的名称)。或者您可以在下载后修改HTML。如果您正在执行相同的基本HTML修改,则可以继承System.Web.UI.Page
,实现自定义呈现,然后让所有电子邮件继承自您的新子类。
重要的是要记住,沿着这条路线创建一个完全独立于用户请求的HTTP请求,因此会话和cookie之类的东西不会自动传递,你需要找到一种方法来做到这一点靠你自己。