imap - 获取大于的 UIDS 时的 Imap 奇怪行为
问题描述
我尝试从 imap 服务器获取大于收件箱文件夹中特定 uid 的 uid。
查询如下所示:
UID SEARCH UID 13780:*
回复:
* SEARCH 13779
aaaj OK UID SEARCH Completed.
为什么它返回 UID 13779 ?还不到13780!
然后我发送电子邮件,回复如下:
* SEARCH 13779
* 5 EXISTS
* 4 RECENT
aaak OK UID SEARCH Completed.
在下一次请求之后,响应如下:
* SEARCH 13780
aaal OK UID SEARCH Completed.
为什么会这样?
在所有请求期间,我保持会话打开。
为什么它返回较低的 uid 我已经理解,因为最大 uid 低于请求的 uid。但是为什么它第一次返回这个:
* 5 EXISTS
* 4 RECENT
接着:
* SEARCH 13780
aaal OK UID SEARCH Completed.
所以在我的情况下需要 13780 信息,我可以立即获得吗?在第一个查询中没有 EXISTS 和 RECENT 吗?
解决方案
UID SEARCH UID 13780:*
并不表示“所有 UID 大于等于 13780”。意思是“13780到邮箱最大UID之间的所有UID”。即,*
内部替换为当前最大的 UID。
如果当前最大的UID是UID SEARCH UID 13780:13779
13779 UID SEARCH UID 13779:13780
,那么命令被解析为m:n
n:m
因此,您始终获得邮箱中最大的 UID。
推荐阅读
- c# - C#中的RSA加密和nodejs中的解密
- spring-boot - 如果 spring-cloud-stream 在类路径上,则 spring-boot 自动配置正在寻找默认绑定器
- r - 是否有 R 函数来优化 PRG AUC(精确召回增益曲线下的面积)?
- ios - 具有自动续订订阅的应用被拒绝,因为需要演示帐户
- java - 查找 samba 共享文件总大小的方法,JCIFS length() 除外
- kubernetes - 配置聚合器后,kubeapiserver启动失败
- javascript - Infinity、NaN 和 undefined:一个未保留的关键字?
- c# - 图像未显示在 asp.net MVC 列表视图中
- django - 及时发送错误的邮件
- logstash - 在 ELK 堆栈中使用 filebeat 和 logstash 从多个服务器获取日志的任何推荐想法?