0

我试图使用OpenPop.Net 接收新电子邮件。我看到这个例子并注意到这个例子假设当我们连接到 pop 客户端时,电子邮件索引(ids)不会改变(当使用索引来获取新电子邮件时)。

    for(int i = 0; i<uids.Count; i++)
    {
       //...
       //then
       Message unseenMessage = client.GetMessage(i + 1);
       //...
    }

但是,我们可能会收到新的电子邮件。

即使我们收到新的电子邮件,这个假设是否正确?

编辑:我不谈论 UID。我的意思是,我们使用for循环来获取第 i 封新电子邮件client.GetMessage(i),但是如果我们在循环中收到一封新电子邮件并且它会更改索引(这封新电子邮件可以通过 获取client.GetMessage(1))。这是否意味着我们丢失了一封电子邮件,或者对于已连接的客户端,这个新电子邮件将忽略?

4

2 回答 2

0

POP3 协议的工作方式是在您注销并重新登录之前忽略新消息。

换句话说,当您向服务器进行身份验证时,您的客户端看到的是您第一次登录时的快照。为了看到新消息,您需要重新连接。

于 2018-05-20T11:32:46.643 回答
0

是的,当收到新邮件时,现有的邮件 UID 不会更改。否则这种技术是行不通的。

我不明白这与您的问题标题有何关系。它不应该忽略新的电子邮件。但是,您可能必须从头开始重新扫描电子邮件才能找到新电子邮件。

于 2018-05-20T05:42:51.897 回答