Imap_fetch_overview和最新/最旧的邮件

时间:2016-02-26 18:27:19

标签: php imap

我正在为imap_fetch_overview的序列挣扎。邮件1是最旧或最新的邮件吗?如果新邮件到达它是否会获得更高的ID?

解决方案:

   $check = imap_check($connection);
   $result = array();   

   if($check->Nmsgs > 0){

        $sort = imap_sort($connection, SORTARRIVAL, 0);

        $msgs = '';

        $i = 1;

        foreach($sort as $id)
        {
            if($i > 200) break;
            $msgs = $msgs . $id . ',';
            $i++;
        }

        $response = imap_fetch_overview($connection, rtrim($msgs,','));
        foreach ($response as $msg){
            $result[] = $msg;
        } 
    }

1 个答案:

答案 0 :(得分:1)

对于问题的第二部分,

请参阅此RFC

每封邮件都有不同的ID,但没有更高或更低。它只是随机选择但是很独特。

对于问题的第一部分,

如果您要查找最旧或最新的邮件,则必须使用date方法,例如:

$overview = imap_fetch_overview($connection,$email_number,0);
echo $overview[0]->date;

然后使用返回日期比较这些邮件。