我在C#中有一个ASP.NET MVC Web应用程序。我想毫不拖延地发送包含附件的批量电子邮件。我使用Microsoft.Exchange.WebServices通过交换服务器发送电子邮件。一切工作正常,但即使发送2个电子邮件与1 MB附件大约需要30-45秒的时间。我也有发送2000封电子邮件的情况,所以我知道它会使服务器崩溃。在ASP.NET MVC中使用EWS异步发送批量电子邮件
要求:只要我点击在我的用户界面发送,它应该提示用户说电子邮件正在发送,用户可以继续浏览。
是否有任何异步的方式发送大量的电子邮件在ASP.NET C#使用EWS?我用Google搜索,发现我还没有实现对夫妇的选择,但我有几个问题:
我可以使用委托异步执行任务吗?如果用户退出应用程序会发生什么情况。它会完成发送电子邮件或停止?
我可以使用System.Threading.ThreadPool.QueueUserWorkItem吗?如果用户退出应用程序会发生什么情况。它会完成发送电子邮件或停止?
以前我用MSMQ来完成这个任务,但是我们没有时间来实现包括监听器在内的整个机制。
将实际发送的电子邮件分成不同的应用程序。 Web应用程序只需*队列*发送的电子邮件。无论是使用消息队列还是将记录保存到数据库表中,都取决于您。一个单独的应用程序,可能是一个Windows服务或计划的控制台应用程序或某种正常运行的作业,会轮询该数据(消息队列,数据库等)并循环记录以发送电子邮件。 – David