我试图使用 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)
获取(。这是否意味着我们丢失了电子邮件或对于连接的客户端,这个新电子邮件将忽略?
POP3 协议的工作方式是忽略新消息,直到您注销并重新登录。
换句话说,当您向服务器进行身份验证时,客户端看到的是您首次登录时那一刻的快照。要查看新消息,您需要重新连接。
是的,收到新邮件时,现有邮件 UID 不会更改。否则,这种技术将不起作用。
我不明白这与你的问题标题有什么关系。它不应该忽略新电子邮件。但是,您可能需要从头开始重新扫描电子邮件才能找到新电子邮件。