在分拣目录中存储电子邮件的性能与异步发送类似吗?

时间:2009-10-01 20:13:33

标签: c# asp.net-mvc email

ASP.NET MVC 1不支持在控制器内部生成的异步线程(但是,Futures程序集和MVC 2 Preview中有一些内容,但生产级别发布中没有任何内容)。但是,我想异步发送我的电子邮件,我正在探索这样做的选项。

一旦看似简单的选项,而不是实际同步发送电子邮件,似乎将传递方法设置为删除目录而不是发送它,然后让SMTP服务器按照自己的节奏选择电子邮件。

使用drop目录的性能是否类似于使用异步电子邮件发送?

1 个答案:

答案 0 :(得分:0)

SmtpClient实际上有SendAsync方法可供使用。


更新:

在进一步分析这种情况后,似乎在同步控制器中使用SmtpClient.SendAsync会引发以下异常:

  

异步操作不是   在这种情况下允许。页面开始   一个异步操作必须有   Async属性设置为true和   异步操作只能是   在之前的页面上开始   PreRenderComplete事件。

作为一种解决方法,可以生成手动线程:

public ActionResult Index()
{
    new Thread(() =>
    {
        // TODO: Add exception handling here:
        var client = new SmtpClient("host");
        client.Send("from", "to", "subject", "body");
    }).Start();

    return View();
}
相关问题