C# 从代码框架发送电子邮件

C# 从代码框架发送电子邮件,c#,asp.net,email,C#,Asp.net,Email,我目前正在编写一个web应用程序,它使用SmtpClient和MailMessage.NETAPI类发送各种带有动态文本内容的电子邮件——我发现我正淹没在StringBuilder的海洋中 有没有电子邮件/模板框架可以帮助解决这类问题?这也适用于中等信任。我会使用一个模板框架,如 编辑:看起来SourceForge Novelocity已经死了,但这家公司的人已经把它叉了。因为我使用Velocity for Java,而NVelocity是.NET的端口,所以我推荐它 你可以看看 是我们在上一个

我目前正在编写一个web应用程序,它使用SmtpClient和MailMessage.NETAPI类发送各种带有动态文本内容的电子邮件——我发现我正淹没在StringBuilder的海洋中


有没有电子邮件/模板框架可以帮助解决这类问题?这也适用于中等信任。

我会使用一个模板框架,如

编辑:看起来SourceForge Novelocity已经死了,但这家公司的人已经把它叉了。因为我使用Velocity for Java,而NVelocity是.NET的端口,所以我推荐它

你可以看看


是我们在上一个项目中使用的

如果您不想为项目引入另一个依赖项,请尝试。

我不使用模板框架,但我使用HTML页面作为电子邮件模板。然后我在HTML中输入变量,这些变量在代码中被替换。这使我可以轻松地编辑电子邮件正文,而无需触摸代码。。。。除非我想再增加一些新品种。使用标准HTML页面作为模板的另一个好处是非程序员能够设计/管理电子邮件正文布局

在某些特殊情况下,我不能使用工具,必须编写我的工具,正如您所说,我希望通过模板进行循环

我在我的项目中创建了一个普通的aspx页面,并在其中放置了我需要的所有控件服务器控件、数据绑定控件

然后使用无声呼叫调用此页面:

HttpWebRequest request = (HttpWebRequest)WebRequest.Create("MyASPXPage.aspx");
request.Method = "GET";
response = request.GetResponse();
reader = new StreamReader(response.GetResponseStream(), Encoding.UTF8);
result = reader.ReadToEnd();
之后,您将使结果字符串变量包含可以作为邮件发送的所有页面

我用过一次,效果很好


但是如果你找到一个工具来帮助你,这会更好。

最新版本2003?还是最新的?这里是答案,呵呵-如果他想在他的“模板”中包含一个循环怎么办?T4是一个模板框架,它回答了您的问题,是否有任何电子邮件/模板框架可以帮助解决这类问题?