PHP использует библиотеку c-client из набора University of Washington IMAP toolkit для работы с IMAP. Небольшое расследование сильного падения производительности на больших почтовых ящиках, проведенное Марисом, обнаружило что c-client использует для внутренней работы индексы сообщений, преобразуя в них UID-ы. Для чего на КАЖДОЕ сообщение посылается запрос на сервер для получения номера индекса из UID-а: на миллион сообщений – миллион запросов к imap только чтобы определить номер индекса из UID.
Спецификация IMAP позволяет одним запросом получать данные сразу для множества сообщений, перечисляя UID-ы через запятую. Небольшая заплатка для реализации данного функционала – c-client-FT_UID-speedup.patch
А ничо что этот патч принадлежит работадателю? Авторское право автоматически переходит вашему дяде (на которого вы работаете), и без его согласия нельзя обнародовать исходные коды :-#
У вас есть разрешение?
чем больше наших изменений попадет в основной код проектов с открытым кодом, тем проще нам поддерживать систему – не надо проверять совместимость наших заплаток с вновь вышедшими версиями стороннего программного обеспечения.
Такая основная идея