PHP imap - получать сообщения, полученные за последний час

0

Я пишу небольшой класс 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

1 ответ

1
Лучший ответ

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

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

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

  • 0
    Спасибо! Я тоже думал о UID. Я искал самый простой способ получить их, можете ли вы назвать это?
  • 0
    UID ПОИСК UID (lastuidyouveve): *
Показать ещё 1 комментарий

Ещё вопросы

Сообщество Overcoder
Наверх
Меню