通过MailGun接收邮件时,他们需要在有限的时间内回复。我对此有两个问题:
1)收到消息后,我需要处理并将其记录在我的CRM中,这需要一些时间。这导致MailGun在我发送响应之前超时。然后,MailGun随着超时继续反复发送该消息。
2)MailGun的帖子不是异步的,但是对我的CRM的api调用是异步的。
因此,我需要向MailGun发送200响应,然后继续处理该消息。而且该过程需要异步。
下面的代码显示了我想要发生的事情。我尝试使用任务,但无法正常工作。有时,如果解决方案需要某种并行任务或线程,则可能需要一次处理大量电子邮件(例如初始化某人的帐户时),因此需要处理许多并行任务或线程。
public class HomeController : Controller
{
[HttpPost]
[Route("mail1")]
public ActionResult Mail()
{
var emailObj = MailGun.Receive(Request);
return Content("ok");
_ = await CRM.SendToEmailApp(emailObj);
}
}
谢谢您的帮助!