2009-07-01 58 views
2

我瞭解大多數POP3協議,但令我困擾的一件事是POP3客戶端如何從POP3服務器有效獲取未檢索郵件ID列表。像雅虎和Gmail這樣的服務現在提供了大量的空間和大多數人(包括我自己),很少刪除電子郵件。從POP3服務器有效獲取未檢索的郵件ID

我目前正在C#中實現一個簡單的POP3客戶端,雖然我問的問題應該是語言不可知的。

在客戶端,我存儲所有檢索到的消息ID的列表。這個客戶端不需要永遠刪除郵件,標記已被閱讀的郵件等。所需要做的是從上次連接到POP3服務器以來獲取最新的電子郵件消息。

我是正確的假設,該算法是這樣的:

  1. 從POP3服務器檢索所有消息ID。這個列表每天都在增長,並且可以很容易地變成兆字節。
  2. 將此消息ID列表與我已經檢索到的消息ID(此列表存儲在客戶端)進行比較,並確定實際必須從服務器檢索哪些郵件消息。
  3. 使用上述步驟2的結果一次從服務器檢索一個郵件消息。

有沒有什麼辦法可以提高效率?

回答

2

有沒有真正有效的方法來做到這一點,因爲POP永遠不會被設計成永久留在郵箱中的郵件 - 它被設計用於一次取回郵件並刪除它的用例。

更好的解決方法是使用IMAP代替,其中,設計用於高效存儲。

相關問題