2011-04-14 43 views
3

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

非常感谢, 戴尔

回答

-1

这听起来像你对我正在寻找电子邮件以发送为期限的临近,而不必依赖于用户动作来触发的电子邮件。要做到这一点,您需要有一些外部流程,可以定期检查并根据需要发送电子邮件。

有很多方法可以设置它,但对于一个Web应用程序,我最喜欢的方法是在后台运行一个脚本或服务,该脚本或服务在计时器上触及Web应用程序的页面。然后该页面负责检查数据库并发送任何需要发送的电子邮件。你也可以做一些有趣的事情来确保这个过程不会通过构建限速功能来过度征税MVC应用程序的核心功能。 (这是FogBugz所做的,我相信,通过邮件队列处理需要发送或摄入的方式不会减慢用户的速度)

其他方法可以做到基本相同的模式,但是何时发送电子邮件以及实际发送电子邮件的逻辑会从MVC应用程序移出并进入外部过程。

至于如何发送实际的电子邮件,快速谷歌搜索如何从.Net发送电子邮件(假设你正在谈论ASP.Net MVC3)会给你更多关于如何发送电子邮件比我能。

-1

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

实际的通知引擎不需要知道有关应用程序的任何信息,或者触发电子邮件的内容,您应该能够构建(或使用)只需将消息发送给一组收件人的东西(您可以确定功能这个组件将是,但它不能渗透到你的底层应用程序的逻辑)。

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

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

-1

我很喜欢用Quartz来执行这样的后台进程。它可以托管在Windows服务或within ASP.NET

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