使用 Asp.Net Web APi 实时发送电子邮件

Send Email in Real Time with Asp.Net Web APi

我有一个 Web 应用程序(Asp Net MVC 和 WebApi),其中我有一个议程,在其中创建事件时,我可以标记为通过电子邮件接收提醒......是问题所在,我需要 WebApi 中的一种方法,它可以全天保持活动状态,当您错过 30 分钟的活动时,发送电子邮件提醒 ...

因为我不知道该怎么做,所以我一直在寻找一个互联网,并且我看到了一些关于 SignalR 和 Rx .NET 的东西......这些对这个问题真的有用吗?有没有更多的技术可以做到这一点!?

ASP.NET 与许多 Web 服务器技术一样,并非设计用于执行此类实时任务。即使有一些怪癖,也有可能 运行 进入许多问题。服务器可以随时重启,运行 在集群上等

我可以给你一个建议,我们倾向于如何解决类似的问题。

看来您可能不需要 "real time" 准确性,也许每 1 分钟(甚至 5 分钟)间隔一次并发送此时到期的所有电子邮件就足够了及时,例如:

// Of course, I don't know where your Data is coming from etc... asume some services doing that
public ActionResult SendDueEMails()
{
   // Query everything older then 30 minutes...
   var dueEMails = SomeReminderRepository.GetReminders();
   foreach (var dueEMail in dueEMails)
   {
       // Process sending of e-Mails
       EMailService.SendReminder(dueEMail);
   }

   return Content(dueEMails.Count + " e-Mails sent.");
}

然后,您可以有一些外部配置的任务(这里有很多可能性)每 1 分钟请求一次 URL。

这不是实时的,它更像是预定的,但它会解决你的问题。