Я создаю персональный веб-почты, но я сталкиваюсь некоторые проблемы с imap_search()Почему функция PHP imap_search() работает медленно?
Я использую этот код, но функцию imap_search() не останавливается:
$criteria = 'SINCE "'.date('d M Y', strtotime('- 1 days')).'"';
$uids = imap_search($mailbox, $criteria, SE_UID, 'UTF-8');
Я вы пробовали с небольшим почтовым ящиком, и он работал медленно, но он работал, однако он не был с большим почтовым ящиком. Итак, я попытался получить только одно из сообщений электронной почты с тем же почтовым ящиком и «SUBJECT», но он тоже не работал. С этим опытом я не думаю, что проблема связана с моими $ критериями, а мой imap_open() работает успешно.
Самый большой почтовый ящик насчитывает в общей сложности 9000 писем и 63 дня. Самое маленькое - всего 20 писем, и мне удалось загрузить их все.
Я пробовал на разных серверах, и это то же поведение.
Если у кого-то есть идея, это будет очень полезно.
Спасибо.
Вы проверили код или принятые протокольные трассы, чтобы вы могли увидеть, вызвана ли локальная нагрузка или ожидает ответа удаленного сервера на команду ПОИСК? – Max
@Max Принимая средний почтовый ящик с 42 электронными письмами, мне удалось загрузить их в 9.42. Imap_search() занял 9 с этого времени и с большим почтовым ящиком (9000) он вообще не останавливался. –
Когда я устанавливаю _'ALL'_ критерии ** imap_search() **, массив из 9000 ** uids ** загружается за несколько мс, и когда я пытаюсь использовать критерии _SINCE'_, функция doesn Не останавливайся. Означает ли это, что критерии _SINCE'_ для ** imap_search() ** не оптимизированы для больших почтовых ящиков? Должен ли я фильтровать 9000 электронных писем самостоятельно в php или другом другом решении? –