我不使用事件调度程序只是asp.net mvc并且需要在事件发生前4天发送提醒。我有活动日期(Event_Start),请你帮忙吗?
我在控制器public void Reminder()中创建了一个类,但现在我卡住了
答案 0 :(得分:0)
最好使用Scheduler服务在确定的时间呼叫/访问“Reminder”页面。例如http://mysite/Reminder/SendEmails/EventId。您可以在控制器内处理电子邮件发送。
答案 1 :(得分:0)
根据您从数据库中检索的项目,您的Reminder()方法将执行为4天休息的事件发送电子邮件的工作。您可以使用System.Net.Mail.SmtpClient类来实际发送电子邮件。
更大的挑战是如何触发每天执行一次的路径。其他担心的是,实际发送可能需要一段时间,如果您不在web.config中处理允许的请求时间,可能会超时。
对于这些类型的活动,可以更容易地创建一个控制台应用程序,并通过服务器上的每日Windows计划任务触发它。
以前是关于在MVC上进行此问题的讨论:Send Email in Background。
答案 2 :(得分:0)
您可能会创建一个页面,确定需要使用System.Net.Mail发送和发送的内容。然后创建一个简单的批处理文件,定期访问该页面(可以通过Windows计划作业处理计划)。
如果您设置了无法创建可以作为服务运行或作为预定作业运行的内容,那么另一个选项是将缓存过期用作作业调度程序。人们一直在用ASP.NET做这件事。这篇文章很旧,但它仍然可以正常工作:
答案 3 :(得分:0)
您可以使用http://quartznet.sourceforge.net/进行触发事件检查功能。这项工作非常简单,无需Windows计划任务。