有效地在IMAP中查找每个文件夹的起始UID

时间:2019-05-16 14:35:10

标签: imap

SELECT EXAMINE STATUS 命令将为我提供每个邮箱(文件夹)的 UIDNEXT 值。我正在寻找一种确定 UIDFIRST 之类的有效方法,即为每个邮箱启动UID。我了解没有直接命令可以得到它。

我可以使用{strong> UID SEARCH ALL (所有given here

)来获取文件夹的所有UID

P.S。不能保证结果按照RFC中给出的升序排列。

这将为我提供该特定所选邮箱中所有可用的UID,并且我可以对其进行排序,并从UID列表中获取最小的UID。

考虑其中包含近百万封邮件的邮箱。进行网络呼叫以及将结果解析为数字列表并将其排序将是无效的。

是否还有其他方法可以有效获取每个邮箱的第一个UID?

1 个答案:

答案 0 :(得分:2)

您想要的命令为a fetch 1 uid,它将始终返回最低的UID,除非邮箱为空。使用a uid search 1可以达到相同的效果,即。搜索具有MSN 1的消息,如果邮箱为非空,则返回其UID;如果邮箱为空,则返回空结果。使用适合您的喜好。

1是最低的,因为UID必须按升序排列,请参见3501 page 9。我认为不需要搜索命令以任何特定顺序返回消息,但是MSN和UID绝对必须一起上升。