2009-07-01 57 views
2

我了解大多数POP3协议,但令我困扰的一件事是POP3客户端如何从POP3服务器有效获取未检索邮件ID列表。像雅虎和Gmail这样的服务现在提供了大量的空间和大多数人(包括我自己),很少删除电子邮件。从POP3服务器有效获取未检索的邮件ID

我目前正在C#中实现一个简单的POP3客户端,虽然我问的问题应该是语言不可知的。

在客户端,我存储所有检索到的消息ID的列表。这个客户端不需要永远删除邮件,标记已被阅读的邮件等。所需要做的是从上次连接到POP3服务器以来获取最新的电子邮件消息。

我是正确的假设,该算法是这样的:

  1. 从POP3服务器检索所有消息ID。这个列表每天都在增长,并且可以很容易地变成兆字节。
  2. 将此消息ID列表与我已经检索到的消息ID(此列表存储在客户端)进行比较,并确定实际必须从服务器检索哪些邮件消息。
  3. 使用上述步骤2的结果一次从服务器检索一个邮件消息。

有没有什么办法可以提高效率?

回答

2

有没有真正有效的方法来做到这一点,因为POP永远不会被设计成永久留在邮箱中的邮件 - 它被设计用于一次取回邮件并删除它的用例。

更好的解决方法是使用IMAP代替,其中,设计用于高效存储。

相关问题