asp.net-mvc – 用于电子邮件创建和发送的ASP.Net MVC后台线程

我正在看postmarkapp.com来处理我的asp.net mvc 2应用程序使用他们提供的.net库发送电子邮件:postmark-dotnet库

在他们的documentation他们提到发送电子邮件附件可能需要一些时间,更好地做一个后台工作.对于我的应用程序,我可以发送任何地方从10到500个个性化的电子邮件,一些附件批量给我的用户.

>在ASP.Net MVC中启动创建和发送这些电子邮件的管理员用户,以非阻塞方式进行后台处理的最佳方式是什么?
>如果他们点击“创建和发送电子邮件”到500个用户,并在该过程完成之前关闭浏览器会怎么样?

感谢任何帮助!新到ASP.Net MVC

解决方法

你可以产生一个新的线程并发送这个线程的邮件:
[HttpPost]
[Authorize(Roles = "Administrator")]
public ActionResult SendMails()
{
    new Thread(() => 
    {
        // Send the emails here
    }).Start();
    return View();
}

如果用户关闭浏览器,该线程将继续运行,直到它完成或AppDomain关闭.该操作将立即返回一个视图,它不会被阻止.

此外,将数据库中的一些标志设置为发送电子邮件的操作正在运行可能是一个好主意,以便如果管理员在按钮上单击两次,那么您的用户不会被大量邮件敲定.

如果你想要更强大的解决方案,你可以看一下MSMQ. here’s a tutorial这应该让你很快开始.

相关文章

### 创建一个gRPC服务项目(grpc服务端)和一个 webapi项目(...
一、SiganlR 使用的协议类型 1.websocket即时通讯协议 2.Ser...
.Net 6 WebApi 项目 在Linux系统上 打包成Docker镜像,发布为...
一、 PD简介PowerDesigner 是一个集所有现代建模技术于一身的...
一、存储过程 存储过程就像数据库中运行的方法(函数) 优点:...
一、Ueditor的下载 1、百度编辑器下载地址:http://ueditor....