2016-11-11 38 views
-2

目前我正在做一個項目,在這個郵件發送過程中需要太多時間。經典ASP中的後臺電子郵件處理

我已經寫在該項目中的代碼首先發送一個郵件之後,它重定向到下一個步驟,但它需要太多的時間。所以現在我想將它重定向到另一個頁面,並且在後臺我想要執行此電子郵件過程。

是否可以在後臺經典ASP中發送電子郵件?

+2

如果一封電子郵件需要*「太多時間」*,那麼您的代碼可能存在實際問題,但在您向我們展示一些內容之前,我們無法建議使其更有效的方法。 – Lankymart

+0

經典的asp沒有本地隊列支持,但你應該檢查出MSMQ https://msdn.microsoft.com/en-us/library/ms711472(v=vs.85).aspx – cfreear

+0

@cfreear MSMQ只是排隊像RabbitMQ和其他機制,但你仍然需要一些東西來消費那個隊列,而不管你使用什麼。 – Lankymart

回答

0

通常,您不能輕易在傳統ASP中運行線程,請參閱here f.i.

由於Tom Baires的回答表明,你可以存儲的.eml作爲Web服務器上的文件,因此ASP文件將很快完成。你必須建立一個後臺任務來搜索這些文件以異步發送它們。

編輯:正如在this thread中討論的那樣,將詳細信息存儲在數據庫隊列中將比保存文件更好。

另一種辦法是處理電子郵件發送不同的頁面上,發送所需要的參數AJAX請求。請注意,您依賴於客戶端瀏覽器來完成請求。

這些都不是亂現成的解決方案,但我希望解釋是可以理解的,你找到一個解決方案。

+0

就像你說的那樣,沒有*「開箱即用」*解決方案,但有101種方法可以做到這一點,將EML文件保存到服務器並不是我的第一選擇。第二個建議是我會考慮的,但運行服務器的XHR請求*(fire and forget)*並繼續,然後服務/代理以批處理方式處理髮出的請求。 – Lankymart

+0

這正是第一個選項所描述的,即發送已保存的.eml文件的服務/代理。也許我不應該引用@湯姆的回答,因爲他可能意味着不同的東西。 – gpinkas

+0

將任何文件存儲到服務器中都是過分的,特別是對於發送和忘記的電子郵件。理想情況下,您需要將細節存儲在數據庫/排隊機制*(如MSMQ)*中,然後服務/代理將信息提取並處理。參見[A:如何在經典的asp中執行多線程/後臺進程](http://stackoverflow.com/a/952956/692942)。 – Lankymart

相關問題