gpt4 book ai didi

c# - 发送异步电子邮件

转载 作者:可可西里 更新时间:2023-11-01 08:55:52 25 4
gpt4 key购买 nike

我正在使用 ASP.NET MVC 3 和 MVCMailer,我尝试使用 SendAsync 发送电子邮件,但实际上它仍然需要更长的时间。

所以我尝试像下面的代码一样使用 Task.Factory:

   var task1 = Task.Factory.StartNew(
state =>
{
var mail = new UserMailer();
var msg = mail.Welcome("My Name", "myemail@gmail.com");
msg.SendAsync();
});

task1.Wait();

问题是,MVCMailer 需要 HttpContext,但在这个任务中我得到了 HttpContext Null。

如何发送异步电子邮件?

最佳答案

一个小补充。这是一种可以帮助某些人的扩展方法。

using Mvc.Mailer; 
using System.Threading.Tasks;
public static void SendEmailAsync(this MvcMailMessage msg, HttpContext currContext)
{
//make this process a little cleaner
Task.Factory.StartNew(() =>
{
System.Web.HttpContext.Current = currContext;
msg.SendAsync();
});
}

按照您的 Controller 方法使用它。

Mailers.UserMailer um = new Mailers.UserMailer();
um.SendWelcomeEmail(dataObject).SendEmailAsync(ControllerContext.HttpContext.ApplicationInstance.Context);

关于c# - 发送异步电子邮件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12201353/

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