Я пишу небольшой класс 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
Кто-нибудь знает, что я могу попробовать?
Протокол IMAP не поддерживает поиск по времени, только дни.
Вы можете выполнить поиск по дате, затем выбрать для него INTERNALDATE и выбрать нужные.
В качестве альтернативы, если это процесс, который вы выполняете каждый час, просто отследите UID самого нового сообщения, которое у вас есть, и извлекайте все сообщения с более высокими UID.
Других решений пока нет …