我正在开发一个会发送大量电子邮件的网站。我想设置页眉和页脚文本,甚至可能是模板,以允许用户根据需要轻松编辑这些电子邮件。
如果我将 HTML 嵌入到 C# 字符串文字中,它会很丑陋,并且必须担心转义。包含页眉和页脚的平面文件可能可行,但感觉有些不对劲。
使用什么是理想的.ASPX
以某种方式将页面作为模板,然后只需告诉我的代码来提供该页面,并使用为电子邮件返回的 HTML。
有没有一种简单又好用的方法来做到这一点?有没有更好的方法来解决这个问题?
Updated:
我添加了一个答案,使您能够使用标准 .aspx 页面作为电子邮件模板。只需像平常一样替换所有变量,使用数据绑定等。然后捕获页面的输出,瞧!您已获得 HTML 电子邮件!
更新但有警告!!!:
我在某些 aspx 页面上使用 MailDefinition 类效果很好,但是当尝试在正在运行的服务器进程期间使用此类时,它失败了。我相信这是因为 MailDefinition.CreateMailMessage() 方法需要一个有效的控件来引用,即使它并不总是执行某些操作。因此,我会推荐我使用 aspx 页面的方法,或者 Mun 使用 ascx 页面的方法,这似乎更好一些。
这里已经有大量答案,但我偶然发现了一篇关于如何将 Razor 与电子邮件模板结合使用的精彩文章。 Razor 是随 ASP.NET MVC 3 一起推出的,但使用 Razor 不需要 MVC。这是制作电子邮件模板的非常巧妙的处理
正如文章指出的那样,“Razor 最好的一点是,与它的前身(Webforms)不同,它不与 Web 环境绑定,我们可以轻松地将它托管在 Web 之外,并将其用作各种目的的模板引擎。”
使用 RazorEngine 生成 HTML 电子邮件 - 第 01 部分 - 简介
在 ASP.NET 之外利用 Razor 模板:它们不再仅适用于 HTML!
使用 RazorEngine 在 ASP.NET 中提供更智能的电子邮件模板
类似的 Stackoverflow QA
使用新的 RazorEngine API 进行模板化
在没有 MVC 的情况下使用 Razor
是否可以在 asp.net 之外使用 Razor View Engine
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)