Algorithm 有效地从POP3服务器获取未检索的邮件ID

Algorithm 有效地从POP3服务器获取未检索的邮件ID,algorithm,language-agnostic,performance,pop3,Algorithm,Language Agnostic,Performance,Pop3,我了解POP3协议的大部分内容,但困扰我的一件事是POP3客户端如何有效地从POP3服务器获取未检索的消息ID列表。许多服务,如雅虎和Gmail,现在提供的空间和大多数人(包括我自己),很少删除电子邮件信息 我目前正在用C#实现一个简单的POP3客户端,尽管我要问的问题应该是语言不可知的 在客户端,我存储了我曾经检索过的所有检索到的消息ID的列表。此客户端不需要删除邮件、标记邮件广告已被阅读等。它只需获取自上次连接到POP3服务器以来的最新电子邮件 我是否正确地假设算法是这样的: 从POP3服务

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

我目前正在用C#实现一个简单的POP3客户端,尽管我要问的问题应该是语言不可知的

在客户端,我存储了我曾经检索过的所有检索到的消息ID的列表。此客户端不需要删除邮件、标记邮件广告已被阅读等。它只需获取自上次连接到POP3服务器以来的最新电子邮件

我是否正确地假设算法是这样的:

  • 从POP3服务器检索所有邮件ID。此列表每天都在增长,很容易变成兆字节大小
  • 将此邮件ID列表与我已经检索到的邮件ID(此列表存储在客户端)进行比较,并确定我实际上必须从服务器检索哪些邮件
  • 使用上面步骤2中的结果从服务器一次检索一封邮件

  • 有什么方法可以提高效率吗?

    没有真正有效的方法可以做到这一点,因为POP从来都不是为在邮箱中永久留下邮件而设计的—它是为您只提取一次邮件并将其删除的用例而设计的

    解决整个问题的更好方法是使用IMAP,它是为高效存储而设计的