2013-02-21 71 views
3

我已经尝试了很多变化来快速返回响应给用户,并在后台发送电子邮件,但失败了。这里是一个样品,我都试过了,如何在不延迟ASP.NET响应的情况下发送电子邮件?

ThreadPool.QueueUserWorkItem(callback => 
       // It is important to put this line inside try catch otherwise it might crash the process 
       client.SendAsync(message, message) 
       ); 

当我穿上client.SendAsync一个破发点,没有回复将被发送到用户,直到这条线执行。那么在后台发送邮件而无需等待回复的正确方法是什么?

更新:我想我得到了这个问题,实际上它是VS调试器,停止asp.net线程(挂起),直到你通过。以上代码适用于我的场景。

回答

1

您可以将电子邮件放入消息队列中,并在从该消息队列读取的单独服务中处理其实际发送。

1

根据电子邮件的数量和大小,您也可以考虑将它们写入拾取文件夹。您可以使用本地IIS SMTP服务器通过智能主机中继邮件。实际上,这对我们来说非常有效。

相关问题