PHP imap - 获取最后一小时收到的消息

时间:2014-11-06 22:20:14

标签: php imap

我正在写一个小的imap课程,想要获取在过去一小时内收到的邮件,但无法找到解决方案。

我发现imap_search()可能有效,但只适用于日期:

    $date = date ( "d M Y", strToTime ( "- 1 days" ) );
    $this->date = imap_search ( $connection, "SINCE \"$date\"");

做的时候

    $date = date ( "d M Y h:i", strToTime ( "- 1 hours" ) );
    $this->date = imap_search ( $connection, "SINCE \"$date\"");

它给我的检查结果与第一种方法相同,但不仅仅是在过去一小时内收到的消息。

的结果相同
g   12-hour format of an hour without leading zeros 1 through 12
G   24-hour format of an hour without leading zeros 0 through 23
h   12-hour format of an hour with leading zeros    01 through 12
H   24-hour format of an hour with leading zeros    00 through 23
i   Minutes with leading zeros  00 to 59
s   Seconds, with leading zeros 00 through 59

有人知道我能尝试什么吗?

1 个答案:

答案 0 :(得分:2)

IMAP协议不支持基于时间的搜索,只需几天。

您可以进行基于日期的搜索,然后为这些搜索获取INTERNALDATE,然后选择您想要的内容。

或者,如果这是您每小时进行的一个过程,只需跟踪您拥有的最新消息的UID,然后获取具有更高UID的任何消息。