gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-02 08:21:12 25 4
gpt4 key购买 nike

我正在使用 postmarkapp.com 使用他们提供的 .net 库处理从我的 asp.net mvc 2 应用程序发送电子邮件: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 关闭。该操作将立即返回 View 并且不会阻塞。

此外,在数据库中设置一些标志以表明正在运行发送电子邮件的操作也是一个好主意,这样,如果管理员单击该按钮两次,您的用户就不会受到大量邮件的困扰。

如果您想要更强大的解决方案,您可以查看 MSMQ 。和here's a tutorial这应该可以让您快速入门。

关于asp.net-mvc - 用于电子邮件创建和发送的 ASP.Net MVC 后台线程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3637649/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com