当获取 UIDS 大于
Imap strange behavior when fetch UIDS greater than
我尝试从 imap 服务器获取大于收件箱文件夹中特定 uid 的 uid。
查询如下:
UID SEARCH UID 13780:*
回复:
* SEARCH 13779
aaaj OK UID SEARCH Completed.
为什么 return UID 13779?不到13780!
然后我发了邮件,回复如下:
* SEARCH 13779
* 5 EXISTS
* 4 RECENT
aaak OK UID SEARCH Completed.
下一次请求后,响应如下:
* SEARCH 13780
aaal OK UID SEARCH Completed.
为什么会这样?
在所有请求期间,我保持会话打开。
为什么它 return 降低了 uid 我明白了,因为最大 uid 低于请求的 uid。但是为什么 return 这是第一次:
* 5 EXISTS
* 4 RECENT
然后:
* SEARCH 13780
aaal OK UID SEARCH Completed.
所以13780是我的情况需要的信息,我可以马上拿到吗?在第一个查询中没有 EXISTS 和 RECENT ?
UID SEARCH UID 13780:*
并不代表 "all UIDs greater than or equal to 13780"。意思是"all UIDs between 13780 and the largest UID in the mailbox"。也就是说,*
在内部被替换为当前最大的 UID。
如果当前最大的 UID 是 13779,则命令被解析为 UID SEARCH UID 13780:13779
,相当于 UID SEARCH UID 13779:13780
,按照规范范围 m:n
和 n:m
是等价的。
因此,您总是获得邮箱中最大的 UID。
我尝试从 imap 服务器获取大于收件箱文件夹中特定 uid 的 uid。
查询如下:
UID SEARCH UID 13780:*
回复:
* SEARCH 13779
aaaj OK UID SEARCH Completed.
为什么 return UID 13779?不到13780!
然后我发了邮件,回复如下:
* SEARCH 13779
* 5 EXISTS
* 4 RECENT
aaak OK UID SEARCH Completed.
下一次请求后,响应如下:
* SEARCH 13780
aaal OK UID SEARCH Completed.
为什么会这样?
在所有请求期间,我保持会话打开。
为什么它 return 降低了 uid 我明白了,因为最大 uid 低于请求的 uid。但是为什么 return 这是第一次:
* 5 EXISTS
* 4 RECENT
然后:
* SEARCH 13780
aaal OK UID SEARCH Completed.
所以13780是我的情况需要的信息,我可以马上拿到吗?在第一个查询中没有 EXISTS 和 RECENT ?
UID SEARCH UID 13780:*
并不代表 "all UIDs greater than or equal to 13780"。意思是"all UIDs between 13780 and the largest UID in the mailbox"。也就是说,*
在内部被替换为当前最大的 UID。
如果当前最大的 UID 是 13779,则命令被解析为 UID SEARCH UID 13780:13779
,相当于 UID SEARCH UID 13779:13780
,按照规范范围 m:n
和 n:m
是等价的。
因此,您总是获得邮箱中最大的 UID。