Imap 命令变得混乱
Imap Command Getting Confused
我正在使用 Imap 命令提取大量电子邮件,因此我的流程如下所示
A6 UID FETCH 960 (FLAGS UID BODY[])
* 3 FETCH (UID 960 FLAGS (\Seen) BODY[] {22655}
A6 OK UID completed
以上是我99%的情况下收到消息成功
但是还有像下面这样的1%
A72 UID FETCH 963 (FLAGS UID BODY[])
* 7670 FETCH (FLAGS () UID 10667)
这些消息我无法阅读,它们失败了
如果我执行以下操作
while (!sizeLine.Contains("BODY"))
{
sizeLine = ReadLine();
}
我会得到类似这个例子的结果
A201 UID FETCH 1649 (FLAGS UID BODY[])
* 7670 FETCH (FLAGS () UID 10667) <--- why ?
* 7674 FETCH (FLAGS () UID 10671) <--- why ?
* 198 FETCH (UID 1649 FLAGS (\Seen) BODY[] {22386} <--- this is what I expected
所以有解决方法但不确定它是否正确?
IMAP 是一种缓存填充协议。假定您的客户端有一个缓存,当缓存中缺少某些内容时,您告诉服务器您需要什么,服务器会将您的内容发送到缓存中。
请注意,服务器可能会出于 "you asked for this" 以外的原因将您的内容发送到缓存。最常见的其他原因是 "some new mail arrived" 和 "someone else read/deleted some mail"。
服务器正常意味着"I've sent you all the stuff you asked for",也许服务器还给您发送了一些。
在这种情况下,服务器向您发送了三件东西:"The flags for UID 10667 are now an empty list"、"The flags for UID 10671 are now an empty list" 和您要求的那件。发送标志更新的通常原因是 many/most 客户端显示那些,例如一些以粗体显示看不见邮件的主题。没关系。服务器正在尝试提供帮助,但不知道它是否真正帮助了您。
我正在使用 Imap 命令提取大量电子邮件,因此我的流程如下所示
A6 UID FETCH 960 (FLAGS UID BODY[])
* 3 FETCH (UID 960 FLAGS (\Seen) BODY[] {22655}
A6 OK UID completed
以上是我99%的情况下收到消息成功
但是还有像下面这样的1%
A72 UID FETCH 963 (FLAGS UID BODY[])
* 7670 FETCH (FLAGS () UID 10667)
这些消息我无法阅读,它们失败了
如果我执行以下操作
while (!sizeLine.Contains("BODY"))
{
sizeLine = ReadLine();
}
我会得到类似这个例子的结果
A201 UID FETCH 1649 (FLAGS UID BODY[])
* 7670 FETCH (FLAGS () UID 10667) <--- why ?
* 7674 FETCH (FLAGS () UID 10671) <--- why ?
* 198 FETCH (UID 1649 FLAGS (\Seen) BODY[] {22386} <--- this is what I expected
所以有解决方法但不确定它是否正确?
IMAP 是一种缓存填充协议。假定您的客户端有一个缓存,当缓存中缺少某些内容时,您告诉服务器您需要什么,服务器会将您的内容发送到缓存中。
请注意,服务器可能会出于 "you asked for this" 以外的原因将您的内容发送到缓存。最常见的其他原因是 "some new mail arrived" 和 "someone else read/deleted some mail"。
服务器正常意味着"I've sent you all the stuff you asked for",也许服务器还给您发送了一些。
在这种情况下,服务器向您发送了三件东西:"The flags for UID 10667 are now an empty list"、"The flags for UID 10671 are now an empty list" 和您要求的那件。发送标志更新的通常原因是 many/most 客户端显示那些,例如一些以粗体显示看不见邮件的主题。没关系。服务器正在尝试提供帮助,但不知道它是否真正帮助了您。