我在C#中有一個ASP.NET MVC Web應用程序。我想毫不拖延地發送包含附件的批量電子郵件。我使用Microsoft.Exchange.WebServices通過交換服務器發送電子郵件。一切工作正常,但即使發送2個電子郵件與1 MB附件大約需要30-45秒的時間。我也有發送2000封電子郵件的情況,所以我知道它會使服務器崩潰。在ASP.NET MVC中使用EWS異步發送批量電子郵件
要求:只要我點擊在我的用戶界面發送,它應該提示用戶說電子郵件正在發送,用戶可以繼續瀏覽。
是否有任何異步的方式發送大量的電子郵件在ASP.NET C#使用EWS?我用Google搜索,發現我還沒有實現對夫婦的選擇,但我有幾個問題:
我可以使用委託異步執行任務嗎?如果用戶退出應用程序會發生什麼情況。它會完成發送電子郵件或停止?
我可以使用System.Threading.ThreadPool.QueueUserWorkItem嗎?如果用戶退出應用程序會發生什麼情況。它會完成發送電子郵件或停止?
以前我用MSMQ來完成這個任務,但是我們沒有時間來實現包括監聽器在內的整個機制。
將實際發送的電子郵件分成不同的應用程序。 Web應用程序只需*隊列*發送的電子郵件。無論是使用消息隊列還是將記錄保存到數據庫表中,都取決於您。一個單獨的應用程序,可能是一個Windows服務或計劃的控制檯應用程序或某種正常運行的作業,會輪詢該數據(消息隊列,數據庫等)並循環記錄以發送電子郵件。 – David