我正在开发一个将会发送大量电子邮件的网站。我希望设置页眉和页脚文本,甚至可能使用模板来让用户轻松编辑这些电子邮件。
如果我在C#字符串文字中嵌入HTML代码,这样做很丑,而且他们还需要担心转义的问题。包含头部和尾部内容的纯文本文件可能可行,但总感觉有些不对劲。
理想情况是使用.ASPX
页面作为某种模板,然后只需告诉我的代码提供该页面,并使用返回的HTML内容用于电子邮件。
有没有一种简单易行的方法?有没有更好的解决方法?
更新:
我添加了一个答案,使您可以使用标准的.aspx页面作为电子邮件模板。像通常一样替换所有变量,使用数据绑定等。然后只需捕获页面输出,就可以得到HTML电子邮件!
更新并附有警告!!!:
我在一些aspx页面上使用MailDefinition类非常顺利,但在尝试在运行的服务器进程中使用此类时失败了。我认为这是因为MailDefinition.CreateMailMessage()方法需要引用有效的控件,即使它并不总是这样做。因此,我建议使用我的方法来使用aspx页面,或者Mun的方法来使用ascx页面,后者似乎更好。
new System.Web.UI.Control()
,代码如下:mailDefinition.CreateMailMessage("somebody@fake.com", iDictionaryReplacements, new System.Web.UI.Control())
。 - Theophilus