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

Find each folder's starting UID in IMAP efficiently

SELECTEXAMINESTATUS 命令会给我 UIDNEXT 每个邮箱(文件夹)的值。我正在寻找的是一种有效的方法来确定 UIDFIRST 之类的东西,即每个邮箱的起始 UID。我明白了,没有直接命令搞定。

我可以使用 UID SEARCH ALL 来获取文件夹的所有 UID,例如 given here

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

这将使我获得该特定选定邮箱中的所有可用 UID,我可以对它们进行排序并从 UID 列表中获取最小的 UID。

考虑一个包含近 百万封邮件 的邮箱。对于网络调用以及将结果解析为数字列表并对其进行排序来说效率不高。

是否有任何其他解决方法可以有效地获取每个邮箱的第一个 UID?

您想要的命令是 a fetch 1 uid,它将始终 return 最低的 UID,除非邮箱为空。使用 a uid search 1 可以达到相同的效果,即。如果邮箱不为空,则搜索 MSN 1 和 return 其 UID 的消息,如果邮箱为空,则搜索结果为空。随心所欲。

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