2011-04-14 100 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

除了發送電子郵件,您還需要在通知發送時存儲以避免發送重複通知。