Есть ли возможность по API сортировать письма по дате и задавать offset, limit при выгрузке писем?
Используйте cron, запускайте скрипт при помощи этого инструмента, там нет ограничений по времени выполнения
У каждого письме есть свой id в почтовом ящикене могу ответить почему, но при каждом запросе по одному и тому же id отдаются разные письма. Возможно особенность библиотеки которую использую или сервера mail.
не совсем понятно зачем вы в цикле нное количество раз загоняете это в массив?Вот тут в массив должно попадать текущее состояние сервера, которое далее обрабатывается и если есть изменения, то они переносятся в массив для обработки и далее уже идет работа с ним.
stream_select($read, $write, $except, 5)
Когда stream_select() возвращается, массивы read, write и except изменяются для того, чтобы указать, какие потоковые ресурсы на самом деле изменили статус. Исходные ключи массивов (array) сохраняются
делалось и именно при таком "ручном" запуске отрабатывало корректно