2012-04-30 40 views
0

我們有一個網站,要求用戶註冊和他們再收到一封激活郵件方法的網絡解決方案

我們現在這樣做的方法包括註冊線程內的整個電子郵件的過程中發出的激活郵件本身即

Register() { 
    registerUser() 
    sendActivationMail() 
    return View(Successpage) 
} 

凡sendActivationMail則包含了所有必要的代碼連接到我們的郵件服務器和發送電子郵件等。我們知道這是不是做到這一點的最好辦法,而我們只是做這個快速測試一切都完了。問題很明顯,用戶最後等待「感謝您註冊頁面」的時間更長,因爲只有在完成其他所有內容後才返回頁面。

,我們是知道的這個正確選項是:

  1. 啓動一個新的線程來發送郵件一旦註冊的數據庫端完成,立即返回原來的線程。
  2. 堅持的電子郵件數據庫,並有運行contiounously和檢查數據庫新郵件每x分鐘
  3. 使用第三方電子郵件服務發送諸如亞馬遜簡單電子郵件服務的線程。

是否有其他方法可用?以上任何一項都是最好的嗎?

在此先感謝您的幫助。

回答

2

我們使用數據庫對消息進行排隊,並且我有一個連續運行的服務應用程序,並檢查隊列並將其發送出去。我們有一堆發送電子郵件的Web應用程序,所以它們都放入隊列中。這對我們很有用。我確信它有優點和缺點,但就像我說的那樣,它對我們很有用。

1

這取決於您的需求。

方法2的優點是,如果發送失敗,您可以重試/決定做什麼。

與DB類似的另一種方法是某些隊列基礎結構,如MSMQ或其他。