ASP.NET MVC渲染到电子邮件

时间:2011-03-17 18:39:29

标签: asp.net-mvc asp.net-mvc-3

我想发送一堆电子邮件,显式格式化的方法是渲染局部视图并发送。问题是我想在后台执行此操作,因此如何访问我需要的方法并不是很明显。

由于工作由控制器启动,我想到的一件事是这样的:

public ActionResult SendEmails(){
  Task.Factory.StartNew(() => DoSendEmails(
      // pass in a formatting closure that has access to the 
      // controller's context
      delegate(EmailData) {
           return RenderPartialToString("view", EmailData);
      }
  ));
}

这会有用吗?还有更好的方法吗?

3 个答案:

答案 0 :(得分:3)

另一个需要考虑的选择是Postal。您可以找到一个教程here来开始,或者从MvcConf中观看this video。您可以使用Email.SendAsync()方法异步发送电子邮件。

答案 1 :(得分:2)

我编写了一个名为ActionMailer.Net的项目,允许您从MVC视图生成电子邮件。给它一个旋转,如果你喜欢它让我知道。我还为项目写了一些documentation和一个很好的screencast。干杯! :)

答案 2 :(得分:1)

我强烈建议您MvcMailer(请注意异步发送电子邮件部分)。您也可以结帐Scott Hanslemann's blog post