我想从IMAP INBOX获取最后一条消息UID

时间:2013-10-08 01:05:35

标签: imap telnet inbox

如何使用IMAP命令查找上一封电子邮件(消息UID)。

我在windows pc上使用putty连接到imap服务器。

2 个答案:

答案 0 :(得分:2)

当您选择收件箱时,它会通过EXISTS响应告诉您邮件中有多少邮件。此号码也是运行邮箱的最高邮件序列号。然后,您可以通过获取此消息的UID来获取邮箱中的最高UID。

那是:

 a SELECT INBOX
 ...
 * 23 EXISTS
 ....
 b FETCH 23 (UID)
 * 23 FETCH (UID 207)
 b OK

因此,207是邮箱中最高的UID。

您也可以执行UID SEARCH ALL并获取返回的最大数字。

答案 1 :(得分:2)

最简单的方法是询问由UID *确定的UIDNEXT消息represents the largest number in use

>>> a SELECT INBOX
...
<<< * 3 EXISTS
<<< a OK [READ-WRITE] Select completed.

>>> b FETCH * (UID)
<<< * 3 FETCH (UID 283)
<<< b OK Fetch completed.

那就是说,我很好奇为什么你想知道邮箱中最高的UID。这个价值往往毫无意义;你不需要它用于任何IMAP命令,并且表示该邮箱中曾经存在的UID的任何上限 - 你想要跟踪{{1}}。