Задать вопрос

Как точно выставить 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
  • Вопрос задан
  • 745 просмотров
Подписаться 4 Простой 6 комментариев
Помогут разобраться в теме Все курсы
  • Skillfactory
    Профессия Fullstack веб-разработчик на JavaScript и PHP
    20 месяцев
    Далее
  • Хекслет
    PHP-разработчик
    10 месяцев
    Далее
  • Нетология
    Веб-разработчик с нуля: профессия с выбором специализации
    14 месяцев
    Далее
Пригласить эксперта
Ваш ответ на вопрос

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

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