2011-01-14 33 views
2

對於我的客戶定製的CRM,我希望用戶(技師)被通知通過電子郵件更改標記的情況下。發送大量電子郵件通知無阻塞

這是值得用戶和箱子和自動電子郵件之間的簡單的訂閱映射表的每一個改變從所述記錄方法中的情況進行了說明的時間進行發送。

如何發送電子郵件10-100給訂閱用戶無需陷入泥淖我的測井方法?我的SMTP服務器位於局域網上的對等設備上,因此發送應該很快,但理想情況下應該由外部排隊進程處理。

我可以有一個cron作業發送任何未發送電子郵件,每10分鐘,但對於這個特定的客戶情況都相當時間敏感和即時通知(如即時電子郵件即可)將是巨大的。

我怎麼能發送大量的電子郵件通知從ASP.NET MVC中不陷入泥淖我的測井方法?

回答

2

從ASP.NET應用程序發送的郵件是不是一個好主意,因爲它可能會獨佔寶貴的服務器資源。一個更好的解決方案是設置一個Windows服務來執行這個任務,甚至可以編寫一個控制檯應用程序,這個應用程序可以安排在Windows Scheduler上運行。 Quartz.NET是一個很好的解決方案,您可以查看一下允許您安排工作。

如果你想這些電子郵件發送給從特定的控制器動作中觸發,你也可以擁有它可以異步調用單獨的WCF服務。

+0

MSMQ怎麼樣? – 2011-01-14 12:24:09

3

早在2007年我被要求尋找到其中的Web服務器會突然凍結並開始發送503錯誤,幾分鐘後回來的情況。長話短說,最後它發送的是阻止服務器的電子郵件(除了一些不好的代碼之外)。

基本上微軟的SMTP服務器是作爲單線程服務實現的 - 最後我檢查了。這將意味着所有服務請求的有價值的ASP.NET線程將不得不排隊等待單個線程單片應用程序發送不太緊急的電子郵件。您需要將您的網站與發送電子郵件分開 - 這是每個人都可以做的,並且有充分的理由。

寫你的電子郵件到隊列有一個過程,閱讀和發送電子郵件。

相關問題