Синтаксис PHP IMAP_SEARCH UNSEEN, SINCE, RECENT, дает неожиданные результаты - PullRequest
1 голос
/ 19 мая 2019

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

$imapResource = GmailAdapter::imapLogin();

$imapEmails = imap_search($imapResource, 'FROM "email@lala.com" SINCE "18-Mar-2019"');

            if (is_array($imapEmails))
            {
                rsort($imapEmails);

                foreach ($imapEmails as $emailIdent)
                {
                    $overview = imap_fetch_overview($imapResource, $emailIdent, 0);
                    $header = imap_header($imapResource, $emailIdent);
                    $subject = $header->subject;
                    $message = imap_fetchbody($imapResource, $emailIdent, '1');
                    $messageExcerpt = substr($message, 0, 150);
                    $partialMessage = trim(quoted_printable_decode($messageExcerpt));
                    $date = date("d F, Y", strtotime($overview[0]->date));

                    dump($overview);
                    dump($message);
                    dump($subject);
                    dump($date);
                }
                imap_close($imapResource);
            }


Я пытался ПОСМОТРЕТЬ, ПОСЛЕДНИЙ, ПОИСК ПОСЛЕДНИЙ, ПОИСК ПОСЛЕ, НЕПРАВИЛЬНО и многие их комбинации.но все они воспитывают пустые массивы.Кажется, что как только я использую любое из вышеупомянутых ключевых слов, gmail просто говорит «ебать нет» и ничего мне не дает.

Я также пробовал много разных форматов даты, но все равно ничего.

Если яиспользуйте исключительно

'FROM "email_address"'

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

Я немного осмотрелся в Google и здесь, и, похоже, никто не может дать хороший ответ.

Может кто-нибудь пролить свет на эту и другие подобные проблемы с php IMAP?Почему это так странно?

ОБНОВЛЕНИЕ

Я только что попытался использовать поисковый термин «ВСЕ» и, что любопытно, он дал мне то же последнее сообщение об ошибке, что и мой запрос FROM;1 000 000 от 6 марта 2018 года. Конечно, на этот раз сообщения были последовательными (1 000 000, затем 999 999 и т. Д.), Что и должно быть при запросе сообщений «ВСЕ».Но мне интересно, это какое-то ограничение для gmail?
Могу ли я каким-либо образом получать сообщения> 1 000 000?

ОБНОВЛЕНИЕ № 2 Подтверждено, что в gmail есть ограничение, если у вас более 1 миллиона писем впочтовый ящик, он не будет захватывать более 1 000 000, начиная с самого старого, что вызывает проблемы, как у меня.Тем не менее, эти ключевые слова для поиска не дают мне ничего, что они должны, например, ПОСЛЕДНУЮ или НЕПРАВИЛЬНУЮ.Похоже, что решение состоит в том, чтобы убедиться, что у вас есть менее миллиона сообщений, если вы хотите получить что-нибудь недавно.Я пытаюсь сделать то же самое на Gmail, который содержит менее 1 000 000 писем, и посмотрю, что произойдет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...