Asp.net mvc 发送批量通知电子邮件而不阻止

Asp.net mvc 发送批量通知电子邮件而不阻止,asp.net-mvc,email,bulk,subscription,Asp.net Mvc,Email,Bulk,Subscription,对于我客户定制的CRM,我希望通过电子邮件通知用户(技术人员)已标记案例的更改 这保证了用户和案例之间有一个简单的订阅映射表,并且在每次从日志记录方法中更改案例时都会自动发送电子邮件 如何向订阅的用户发送10-100封电子邮件而不影响我的日志记录方法?我的SMTP服务器位于局域网上的对等服务器上,因此发送应该很快,但理想情况下,这应该由外部队列处理 我可以让一个cron作业每10分钟发送一封未完成的电子邮件,但是对于这个特定的客户案例来说,它是非常时间敏感的,即时通知(尽可能即时的电子邮件)将非

对于我客户定制的CRM,我希望通过电子邮件通知用户(技术人员)已标记案例的更改

这保证了用户和案例之间有一个简单的订阅映射表,并且在每次从日志记录方法中更改案例时都会自动发送电子邮件

如何向订阅的用户发送10-100封电子邮件而不影响我的日志记录方法?我的SMTP服务器位于局域网上的对等服务器上,因此发送应该很快,但理想情况下,这应该由外部队列处理

我可以让一个cron作业每10分钟发送一封未完成的电子邮件,但是对于这个特定的客户案例来说,它是非常时间敏感的,即时通知(尽可能即时的电子邮件)将非常好


如何从ASP.NET MVC内部发送批量通知电子邮件而不影响我的日志记录方法?

从ASP.NET应用程序发送电子邮件不是一个好主意,因为它可能会垄断宝贵的服务器资源。更好的解决方案是设置一个Windows服务来执行此任务,或者甚至编写一个控制台应用程序,该应用程序可以计划与Windows Scheduler一起运行。这是一个很好的解决方案,您可以考虑让您安排作业


如果您希望在特定的控制器操作中触发这些电子邮件发送,您还可以使用一个单独的WCF服务,该服务可以异步调用。

早在2007年,我就被要求调查Web服务器突然冻结并开始发送503个错误并在几分钟后返回的情况。长话短说,最后发现它发送的电子邮件阻塞了服务器(还有一些坏代码)

基本上,微软的SMTP服务器是作为单线程服务实现的——我上次检查时。这意味着,所有为请求提供服务的有价值的ASP.NET线程都必须排队到单线程单片应用程序才能发送不那么紧急的电子邮件。你需要使你的网站与发送电子邮件脱钩——这是每个人都做的事情,这是有充分理由的


将您的电子邮件写入队列,并有一个读取和发送电子邮件的过程

@FreshCode,是的,MSMQ也非常适合这类任务。