2014-11-06 2 views
0

Я пишу небольшой класс imap и хочу получать письма, полученные в течение последнего часа, но не могу найти решение для этого.PHP 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\""); 

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

Тот же результат для

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

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

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

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

+0

Спасибо! Я тоже думал о UID. Я искал для них самый простой способ получить их, можете ли вы назвать это? – baao

+0

UID ПОИСК UID (lastuidyouhave): * – Max

+0

Отлично, спасибо снова! – baao