люмен: Поиск в IMAP-библиотеке с датой не работает - PullRequest
0 голосов
/ 06 декабря 2018

Я использую библиотеку ниже в моем файле composer.json

"php-imap/php-imap": "3.0.*",

Мой код ниже,

$folder['shortpath']="Inbox";
    new \PhpImap\Mailbox('{'.$mdata["server"].":993/imap/ssl}". $folder['shortpath'], $mdata["user"], $mdata["pass"], $dir);
                        $mailsIds = $mailbox->searchMailbox($mailbox, 'SINCE "01 December 2018"');
                        echo"<pre>";print_r($mailsIds);die;

Это дает мне пустой массив вместо значения UIDs

У меня всего 4 электронных письма после 1 декабря

Если я использую указанный ниже код,

$mailsIds = $mailbox->searchMailbox("ALL");
                            echo"<pre>";print_r($mailsIds);die;

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

, нодата поиска не работает


если я напишу ниже код, то выдает ошибку:

 $mailsIds = $mailbox->searchMailbox('SINCE 01 December 2018');

ОШИБКА:

IMAP method imap_search() failed with error: Unknown search criterion: SINCE 2018-12-06 09:32:32←

Я нашелмое решение, как показано ниже, работает для меня,

У меня есть userd

mailsIds = $mailbox->searchMailbox('SINCE "01 December 2018"');

, но при открытом соединении передайте еще один аргумент для "US-ASCII"

new \PhpImap\Mailbox('{'.$mdata["server"].":993/imap/ssl}".
                    $folder['shortpath'], $mdata["user"], $mdata["pass"], $dir, "US-ASCII");

Но другой мой вопрос: он дает мне список новых сообщений, основанных на указанной дате,

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

Означает, как идентифицировать новые электронные письма и любые действия с существующими электронными письмами до указанной даты

...