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

Кто-нибудь знает, что я могу попробовать?

0

Решение

Протокол IMAP не поддерживает поиск по времени, только дни.

Вы можете выполнить поиск по дате, затем выбрать для него INTERNALDATE и выбрать нужные.

В качестве альтернативы, если это процесс, который вы выполняете каждый час, просто отследите UID самого нового сообщения, которое у вас есть, и извлекайте все сообщения с более высокими UID.

2

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]