IMAP COPY命令 - uid和Message-Id

时间:2011-03-24 04:30:54

标签: copy imap fetch

我了解UID已更改,但在特定邮件的任何操作期​​间都不会更改Message-Id。然而,经过一些操作后,我想出了这个案例:

假设我的total of 2000 emails中有INBOX。如果我将带有1000thUID 1000的{​​{1}}电子邮件复制到我的Message-Id 1000邮箱,然后将其复制回Trash,则UID将更改为2000和Message-Id到2000;该文件夹的当前值。然后,无论电子邮件将在最顶端的日期。

现在的问题是,如果我INBOX(最近10封电子邮件),我会在10个内容中收到该特定电子邮件。您如何根据日期获取最后10个,而不必提取2000封电子邮件,然后按日期排序?

1 个答案:

答案 0 :(得分:2)

如果IMAP服务器支持它,您可以使用SORT命令,如RFC 5256中所述。您正在寻找的具体命令可能是:

C: A11 SORT (REVERSE DATE) UTF-8 ALL
S: * SORT 5 3 4 1 2
S: A11 OK SORT completed

服务器响应是一个消息序列号列表,您可以将其用于后续提取。


如果您的服务器支持SORT扩展(现代IMAP服务器),则会响应CAPABILITY命令宣布它。以下是我正在运行的古代版Courier-IMAP的回复:

CAPABILITY
* CAPABILITY IMAP4rev1 CHILDREN NAMESPACE THREAD=ORDEREDSUBJECT THREAD=REFERENCES
  SORT QUOTA LOGIN IDLE ACL ACL2=UNION STARTTLS
相关问题