【发布时间】:2012-06-04 09:53:08
【问题描述】:
我们从我们的 ASP.NET MVC 3 Razor Web 应用程序发送电子邮件。
目前我们正在使用 ActionMailer.NET。
我看过 MvcMailer。
两者的问题是它们需要一个 Http Context 来执行。
这个问题是我想异步发送电子邮件。现在我知道您可以异步执行实际发送(例如 SMTP 调用),但我希望发送电子邮件的整个过程是异步的,例如:
public ActionResult DoSomething(Something something)
{
_db.Save(something);
Task.Factory.StartNew(() => {
new MailController().DoSomething().Send(something);
});
return RedirectToAction("Index");
}
在“DoSomething”方法中,我再次查询数据库,执行其他操作等......我希望所有这些都是异步的 - 因此整个调用都包含在一个任务中,而不是仅仅执行 @987654323 @。希望这是有道理的。
上面的例子是 ActionMailer,它中断了 - 因为 HTTP 上下文在生成的线程中消失了。
有谁知道我怎样才能让它工作,或者另一个不依赖 HTTP 上下文存在的包?
我不确定为什么需要 HTTP 上下文 - 这里没有请求路由,只是将文件系统上的视图解析为 HTML。
【问题讨论】:
-
还有原来的 RazorEngine github.com/Antaris/RazorEngine :)(最初由 Antaris 和我自己开发,但 Antaris 完全接管了它)
标签: asp.net-mvc-3 razor actionmailer html-email mvcmailer