MVC 3:电子邮件通知

时间:2011-04-14 13:54:25

标签: asp.net-mvc asp.net-mvc-3

我想将电子邮件通知系统集成到我的MVC3应用程序中。因此,当用户任务到期时,他们会收到电子邮件提醒。我是MVC的新手,所以我想指出如何解决这个问题的正确方向。

非常感谢, 戴尔

3 个答案:

答案 0 :(得分:-1)

听起来,我正在寻找一封电子邮件,以便在截止日期临近时发送,而不必依赖用户操作来触发电子邮件。为此,您需要有一些外部流程,可以定期检查并根据需要发送电子邮件。

有多种方法可以设置它,但对于Web应用程序,我最喜欢的一个是在后台运行的脚本或服务,它只是在计时器上点击Web应用程序的页面。然后该页面负责检查数据库并发送任何需要发送的电子邮件。您还可以通过构建速率限制功能来确保此过程不会过多地影响MVC应用程序的核心功能。 (我相信,这就是FogBugz通过一系列需要以不会减慢用户速度的方式发送或摄取的电子邮件进行处理的方式)

其他方法基本上是相同的模式,但是何时发送电子邮件和实际发送电子邮件的逻辑从MVC应用程序转移到外部进程。

至于如何发送实际的电子邮件,快速Google搜索如何从.Net发送电子邮件(假设您正在谈论ASP.Net MVC3)将为您提供有关如何发送电子邮件的更好信息我可以。

答案 1 :(得分:-1)

我首先要熟悉Dependency Injection的概念,然后开发将通知作为通用模块发送的代码。

实际的通知引擎不需要了解您的应用程序或触发电子邮件的内容,您应该能够构建(或使用)只是向一组收件人发送邮件的内容(您可以确定这个功能如何组件将是,但它不会渗透到底层应用程序的逻辑中。)

一旦它tested并且您确信它也能满足它的需要,您可以根据需要简单地注入您的mvc应用程序。这样,应用程序的控制器将根据需要使用您的通知服务执行必要的应用程序逻辑。

理想情况下,您的MVC应用程序根本不应包含太多业务逻辑,它应该只包含对执行应用程序逻辑的一堆不同服务的引用,而您的控制器应该只知道如何正确使用这些服务。 / p>

答案 2 :(得分:-1)

我非常喜欢使用Quartz来执行此类后台进程。它可以托管在Windows服务或within ASP.NET

除了发送电子邮件之外,您还需要在发送通知时进行存储,以避免发送重复通知。

相关问题