Как точно выставить timeout для php imap_open?

Сделал подключение к imap yandex почты по крону, работает стабильно, но иногда imap_open намертво зависает, без какой-либо ошибки. Скрипт может висеть сутки в рабочем состоянии и никогда не завершаться.

Подключаюсь по:
{imap.yandex.ru:993/ssl/novalidate-cert}INBOX
{imap.yandex.ru:993/imap/ssl}INBOX


Пробовал выставить в начало скрипта:
set_time_limit(20);
ini_set("default_socket_timeout", 20);
imap_timeout(IMAP_READTIMEOUT, 20);
imap_timeout(IMAP_OPENTIMEOUT, 20);
imap_timeout(IMAP_WRITETIMEOUT, 20);
imap_timeout(IMAP_CLOSETIMEOUT, 20);


Логировал imap_timeout в момент подключения, действительно передается "20".

Беглый гуглеж приводит к багу php с ssl подключением, но я не уверен:
https://stackoverflow.com/questions/55407026/imap-...
https://bugs.php.net/bug.php?id=61846

У яндекс.почты вроде бы нет подключения без ssl, по крайней мере вот такое подключение не работает:
{imap.yandex.ru:143/imap/notls}INBOX
  • Вопрос задан
  • 694 просмотра
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы