【问题标题】:Send Event Email Reminder asp.net mvc发送事件电子邮件提醒 asp.net mvc
【发布时间】:2011-10-27 00:54:30
【问题描述】:

我没有使用事件调度程序,只是 asp.net mvc,需要在事件发生前 4 天发送提醒。我有事件(Event_Start)的存储日期,你能帮忙吗?

我在控制器 public void Reminder() 中创建了一个类,但现在卡住了

【问题讨论】:

    标签: asp.net-mvc email


    【解决方案1】:

    您的 Reminder() 方法将根据您从数据库中检索到的项目为那些休假 4 天的事件发送电子邮件。您可以使用 System.Net.Mail.SmtpClient 类来实际发送电子邮件。

    更大的挑战是如何触发每天执行一次的路径。其他担心是,如果您不注意 web.config 中允许的请求时间,实际发送可能需要一段时间并且可能会超时。

    对于这些类型的活动,只需创建一个控制台应用程序并通过服务器上的每日 Windows 计划任务触发它会更容易。

    这是之前关于在 MVC 上做的问题的讨论:Send Email in Background

    【讨论】:

    • 我使用 System.Net.Mail 创建了一个电子邮件类
    • 很好地将它作为一个单独的服务类。这样,如果您决定使用控制台应用程序等替代实现,它仍然可以重用。
    • 我现在的问题是实际上有一个表格可以从数据库中输入电子邮件详细信息以发送它,请问有什么想法吗?
    • 我不太明白这个问题。如果您的意思是让用户输入他们的电子邮件的表单,我会做某种“订阅”或“个人资料”控制器,他们可以在其中输入详细信息。
    【解决方案2】:

    您最好使用调度程序服务在确定的时间调用/访问“提醒”页面。例如http://mysite/Reminder/SendEmails/EventId。您可以在控制器内处理电子邮件发送。

    【讨论】:

      【解决方案3】:

      您可能会创建一个页面来确定需要发送的内容并使用 System.Net.Mail 发送。然后创建一个简单的批处理文件,定期访问该页面(可以通过 Windows 计划作业处理计划)。

      如果您坚决反对创建可以作为服务运行或作为计划作业运行的东西,那么另一种选择是将缓存过期用作作业计划程序。一段时间以来,人们一直在使用 ASP.NET 进行此操作。这篇文章很旧,但它应该仍然可以正常工作:

      http://www.codeproject.com/KB/aspnet/ASPNETService.aspx

      【讨论】:

        【解决方案4】:

        您可以使用http://quartznet.sourceforge.net/ 进行触发事件检查功能。这很简单,不需要 Windows 计划任务来完成这项工作。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2018-12-09
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2014-09-27
          相关资源
          最近更新 更多