imap_search 找到的电子邮件的顺序是什么?

What is the order of the e-mails found by imap_search?

我正在使用 imap_search 从邮​​箱中检索所有电子邮件。

参见:http://php.net/manual/en/function.imap-search.php

可以安全地假设 imap_search() 检索按日期排序的电子邮件,最早的在前吗?从我的测试来看确实如此,但我找不到任何关于实际订购的文档。

如果按日期排序,您可以使用 array_reverse() 和 array_splice() 获取最新的 10 个左右。

示例代码:

<?php
$conn   = imap_open('{imap.example.com:993/imap/ssl}INBOX', 'foo@example.com', 'pass123', OP_READONLY);

$msgnos = imap_search($conn, 'ALL');

?>

与其假定文档中未指定的顺序(因此可能会在任何版本中更改),不如对其进行排序:

imap_sort()

imap_sort ( resource $imap_stream , int $criteria , int $reverse [, int $options = 0 [, string $search_criteria = NULL [, string $charset = NULL ]]] ) : array

Gets and sorts message numbers by the given parameters.

它甚至接受 search_criteria 并允许您在同一个调用中反转它。