即时通讯不使用事件调度程序只是asp.net mvc并需要在事件发生前4天发送提醒。我有事件存储日期(Event_Start),请你帮忙吗?发送活动电子邮件提醒asp.net mvc
我已经创造了控制器)一类公共无效提示(,但我现在坚持
即时通讯不使用事件调度程序只是asp.net mvc并需要在事件发生前4天发送提醒。我有事件存储日期(Event_Start),请你帮忙吗?发送活动电子邮件提醒asp.net mvc
我已经创造了控制器)一类公共无效提示(,但我现在坚持
这可能是最适合你使用Scheduler服务调用/参观“提醒”页面,在确定的时间。例如http://mysite/Reminder/SendEmails/EventId。您可以处理控制器内的电子邮件发送。
根据您从数据库中检索到的项目,Your Reminder()方法将完成为那些为期4天的事件发送电子邮件的工作。您可以使用System.Net.Mail.SmtpClient类来实际发送电子邮件。
更大的挑战是如何触发每天执行一次的路径。其他的担心是,实际的发送可能需要一段时间,如果在web.config中没有处理允许的请求时间,可能会超时。
对于这些类型的活动,只需创建一个控制台应用程序并通过服务器上的日常Windows计划任务触发即可。
以下是关于在MVC上执行该操作的问题的以前讨论:Send Email in Background。
您可能会创建一个页面,确定需要使用System.Net.Mail发送和发送的内容。然后创建一个定期访问该页面的简单批处理文件(可通过Windows Scheduled Jobs处理日程安排)。
如果您无法创建可作为服务运行或作为计划作业运行的内容,那么另一个选择是使用缓存过期作为作业调度程序。人们一直在用ASP.NET做这件事。这篇文章是老了,但它仍然应该好工作:
您可以使用http://quartznet.sourceforge.net/触发事件检测功能。这非常简单,无需Windows Scheduled Task来完成这项工作。
我已经创建了一个电子邮件类使用System.Net.Mail – Alss
很好,使一个单独的服务类。这样,如果您决定转到诸如控制台应用等替代实现,它仍然可以重用。 – Turnkey
我现在的问题是实际上有一个表单来输入数据库中的电子邮件细节发送它像,任何想法请吗? – Alss