小编典典

我可以使用ASP.NET设置HTML /电子邮件模板吗?

c#

我正在一个将发送大量电子邮件的网站上工作。我想同时设置页眉和页脚文本,或者甚至设置模板,以便用户在需要时可以轻松地编辑这些电子邮件。

如果我将HTML嵌入C#字符串文字中,则很丑陋,他们将不得不担心转义。包括用于页眉和页脚的平面文件可能会起作用,但是关于它的某些感觉并不正确。

理想的情况.ASPX是以某种方式将页面用作模板,然后告诉我的代码为该页面提供服务,并使用为电子邮件返回的HTML。

有没有一种简单方便的方法可以做到这一点?有没有更好的方法来解决这个问题?

更新:
我添加了一个答案,使您可以使用标准的.aspx页作为电子邮件模板。只需像往常一样替换所有变量,使用数据绑定等即可。然后只需捕获页面的输出,瞧!您有HTML电子邮件!


CAVEAT 更新!:
我在一些aspx页面上使用MailDefinition类就很好了,但是当尝试在运行的服务器进程中使用此类时,它失败了。我相信这是因为MailDefinition.CreateMailMessage()方法需要一个有效的控件来引用,即使它并不总是做某事。因此,我建议使用aspx页面的方法,或Mun使用ascx页面的方法,这似乎要好一些。


阅读 290

收藏
2020-05-19

共1个答案

小编典典

这里已经有很多答案,但是我偶然发现了一篇很棒的文章,关于如何将Razor与电子邮件模板一起使用。Razor已随ASP.NET MVC
3一起推出,但使用Razor不需要MVC。这是处理电子邮件模板的非常巧妙的处理

正如文章所指出的那样,“
Razor的最好之处在于,与它的前身(webforms)不同,它不与Web环境捆绑在一起,我们可以轻松地将其托管在Web之外,并用作各种目的的模板引擎。”

使用RazorEngine生成HTML电子邮件-第01部分-简介

在ASP.NET之外利用Razor模板:它们不再仅用于HTML!

使用RazorEngine的ASP.NET中更智能的电子邮件模板

类似的Stackoverflow质量检查

使用新的RazorEngine API进行模板

在没有MVC的情况下使用Razor

是否可以在asp.net之外使用Razor View
Engine

2020-05-19