2009-11-06 62 views
0

我想檢查用戶輸入的流行和smtp值..我想驗證流行和smtp說例如(用戶輸入的pop.gmail.com,smtp.gmail.com)是正確的或錯誤的。如何獲得服務器的中間響應?

對於我採取POP和SMTP發送值只有一個請求到服務器用戶將通過使連接到特定的服務器上執行兩個任務 1.檢查用戶輸入的流行進入, 2.檢查用戶輸入通過發送1個郵件到一些虛擬的郵件編號SMTP .. 我完成所有這些任務..

但現在我的要求是什麼,我必須確認每一件事情後顯示給用戶。我的意思是在UI我必須顯示爲

  1. POP連接選中..好的
  2. smtp連接檢查..好吧。

但我只發送一個請求給服務器做這兩個tasks..So我需要整理各tasks..So只有我能在客戶端UI更新後從服務器獲取中間狀態..但我不不知道是否有可能從服務器獲得單個請求的中間響應......任何想法的朋友?如果是這樣你能拿出一點點的代碼...

期待的建議?

+0

有人可以格式化問題... – RageZ 2009-11-06 05:59:54

+0

也「frenz」是不是真的好看 – RageZ 2009-11-06 06:00:29

+0

與questionmarks – Omnipresent 2009-11-06 06:04:25

回答

0

你應該看看長的polling technique,有可能檢索部分響應,但它不能在全部瀏覽器上工作。

0

您可以使用HEAD請求,而不是GET或POST僅返回HTTP頭

0

稍微偏離主題 - 但是在發送郵件假人可以是「危險的」。

如果嘗試發送到不存在的本地地址,許多服務器都會「記錄」。例如 - 如果服務器的域名是「whatever.com」,並且您發送到隨機地址,如[email protected],並且「aaa」不是有效的用戶,則服務器會注意到這一點。

服務器可能會然後執行一個操作,如阻止您作爲發件人一段時間。 (這有助於減少字典式攻擊的垃圾郵件。)因此,您的「測試」最終會有效阻止真正的郵件傳遞。

反過來也是如此。假設你嘗試發送一個你知道有效的外部地址(例如你自己的電子郵件地址)作爲測試。在這種情況下,地址必須是有效的內部地址。如果你使用的是無效的內部地址,或者更糟糕的地址不是內部的,那麼服務器可能會拒絕發送郵件(最好),最壞的情況是再建立一個臨時塊。

這兩種情況下的關鍵因素是,雖然SMTP協議非常「鬆散」,但SMTP服務器非常關注「不良行爲」,因爲這是區分垃圾郵件程序的一種方式。所以任何隱藏「不正確」的行爲可能會導致它任意拒絕接受你的郵件(通常在一段有限的時間內。)

順便提一句,回到你原來的問題。 你的兩個測試都非常瞬時。即使電子郵件服務器位於世界的另一邊,您可以在幾秒鐘內完成兩項檢查。所以即使你發回2個數據包給用戶,他們會看起來像「到達」一樣。並且由於來自瀏覽器的1個請求只能處理來自服務器的1個響應,您需要以2個數據包發送響應。

即做第一次測試 - 發送第一部分響應 - 做第二次測試 - 發送第二部分響應。

對於普通的HTTP數據包來說,這沒什麼大不了的。第一個響應準備就緒後進行某種清空/發送,然後在第二個響應後再次發送。瀏覽器用於在部分頁面到達時顯示。

但是,對於AJAX請求,您需要在相當低的級別進入您的框架。我知道大多數框架都要求傳入的異步數據包在「解析」之前「完整」。如果數據包被格式化爲xml格式,那麼尤其如此,其中部分解析在幾乎所有情況下都是無用的。

+0

喜布魯斯, 對不起,我不會發郵件給虛擬郵件ID ..我會假郵件發送給我們的管理員samw電子郵件ID ..任何方式,我真的很感激你的suggesstion .. – Senthil 2009-11-06 06:31:09

+0

雅你是正確的......他們暫時封鎖一段時間..然後我怎麼檢查用戶輸入的有效的電子郵件ID和密碼? ? – Senthil 2009-11-06 06:41:31

+0

測試ID和密碼很簡單 - 畢竟如果它不起作用,那就錯了。但是,您可能需要等待一段時間再允許您再次測試。沒有真正的解決方法,因爲電子郵件服務器特別不喜歡以任何方式進行「測試」。 因此,你身邊的_any_故障可能會讓服務器將你隔離一會兒。 它變得更糟,因爲如果您有多個用戶,那麼1個用戶的失敗將導致您的服務器(對於其他用戶)的所有其他合法郵件也失敗。 – Bruce 2009-11-06 06:53:30

相關問題