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

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

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

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

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

更新警告!!!:
我在某些 aspx 页面上使用 MailDefinition 类很好,但是在正在运行的服务器进程期间尝试使用此类时,它失败了。我相信这是因为 MailDefinition.CreateMailMessage() 方法需要一个有效的控件来引用,即使它并不总是做一些事情。正因为如此,我会推荐我使用 asx 页面的方法,或者使用 ascx 页面的 Mun 方法,这似乎更好一些。

最佳答案

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

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

Generating HTML emails with RazorEngine - Part 01 - Introduction

Leveraging Razor Templates Outside of ASP.NET: They’re Not Just for HTML Anymore!

Smarter email templates in ASP.NET with RazorEngine

类似的 Stackoverflow QA

Templating using new RazorEngine API

Using Razor without MVC

Is it possible to use Razor View Engine outside asp.net

关于c# - 我可以使用 ASP.NET 设置 HTML/电子邮件模板吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/620265/

10-14 16:38
查看更多