2012-04-09 92 views
8

我想在類庫中使用MvcMailer,它本質上是我的一站式商店,用於爲我的解決方案撰寫和發送電子郵件。我認爲這就是MvcMailer設計的目的,但它似乎找不到我的任何.cshtml文件 - 我想它預計它們在我的啓動項目中。MvcMailer可以在類庫中使用嗎?

MvcMailer與我的其他項目有100%分離嗎?

謝謝。

回答

1

根據MvcMailer文檔https://github.com/smsohan/MvcMailer/wiki/MvcMailer-Step-by-Step-Guide(以下節選)這是不可能的,也許你可以有一個單獨的Web項目,它的唯一目的是發送電子郵件和只接受來自您的應用程序

電子郵件從發送請求後臺進程 您是否需要從後臺進程發送電子郵件?你是對的。您不想阻止您發送該通知電子郵件的請求/響應週期。相反,你想要的是一個後臺進程,它可以爲你做,即使它在短暫的延遲後發送。以下是您可以執行的操作:

將您的電子郵件相關數據保存到數據庫中。 創建發送電子郵件的REST/SOAP Web服務。這將確保您的Mailer能夠訪問HttpContext,這對於核心ASP.NET MVC框架正常工作是非常重要的。例如,查找您的視圖,生成URL並執行認證/授權。 創建一個調用Web服務的簡單應用程序。這可能是Windows服務應用程序或在Windows計劃任務下運行的可執行應用程序。 未來版本的MvcMailer很可能會支持這一點。但這很難,因爲兩個原因:

MailMessage不是開箱即用的Serializable,它有很多複雜的字段和關聯。 核心ASP.NET框架還需要的HttpContext :(

+1

感謝張貼,這是一個真正的恥辱,因爲這是一個非常理想的。我發現了一個類似的職位由他稱其不可能的,但我在想,如果任何人都找到了解決方法,浪費了幾個小時後,似乎沒有簡單的解決方案 – smdrager 2012-04-10 13:15:40

+3

似乎你可以使用ActionMailer.Net.Standalone來做到這一點,因爲它使用RazorEngine。據我可以告訴它沒有對HttpContext的要求,並可用於完全獨立的進程/程序集。 – 2012-06-03 16:20:17

+1

單獨使用ActionMailer.Net:http://geeksharp.com/2011/07/06/actionmailer-0-6-released/ – 2012-07-21 04:25:43

相關問題