我使用SmtpClient
和MailMessage
發送來自ASP.Net
代碼的電子郵件。 我希望能夠延遲基於業務邏輯的電子郵件的傳遞。 我將能夠生成一個DateTime
對象,以便實際發送電子郵件的時間。使用MailMessage和SmtpClient或MessageQueue延遲發送電子郵件
我知道我可以創建一個Windows服務來安排使用Sql Server
數據庫作爲電子郵件存儲的電子郵件傳遞。但我不想在託管服務器上部署額外的服務。
我也知道,我可以創造一個SQL Server
工作來實現這一點,但我不喜歡,直到除非,這不能用純ASP.NET
的一點要注意實現的是,我的代碼檢查服務器上是否啓用MSMQ
。如果是,則MessageQueue
類用於發送電子郵件。所以任何實現這個使用隊列的指針都會有幫助。
順便說一句,該解決方案應該在這兩種情況下工作(即SmtpClient
以及MessageQueue
。
我已經檢討this和this問題和接受的答案。我不希望使用第三方產品直到與使用純ASP.NET
PS .NET Framework版本,除非這是無法實現的:3.5,IIS 7和SQL Server 2008應該是環境
您可以簡單地添加一些應用程序邏輯,以每X分鐘發送所有未決消息。您可以在Application_Start事件中掛接一個計時器。只要確保你的asp.net應用程序沒有關閉,如果沒有X分鐘的訪問者。 – CodingBarfield 2012-04-16 06:47:00
@CodingBarfield:如果你能展示一些示例代碼,那將會很棒。我懷疑,如果沒有X分鐘的訪問者,「確保asp.net應用程序沒有關閉」的努力很高。那麼你可以寫一個答案來顯示你的實施方法,以便我驗證嗎? – AYK 2012-04-16 07:03:28
@AYKSorry我沒有用過asp。最近網絡足以提供有保證的工作解決方案。這可能是一個微不足道的IIS切換或難以做到的事情,但我無法給予任何保證。 – CodingBarfield 2012-04-16 08:16:18