Imap_open: не удалось открыть поток на моем почтовом сервере

Примечание: Неизвестно: подключение не выполнено. mail.domain.com, 143: Connection (errflg = 2) в Unknown в строке 0

imap_open("{mail.domain.com:143/novalidate-cert}INBOX", 'login', 'password')

Порт 143 открыт, я не за брандмауэром, мой сервер использует самозаверяющие сертификаты.

Я действительно не понимаю, почему я не могу подключиться к моему почтовому серверу

Я искал везде, но не нашел ответа.

Ответ 1

Спасибо за ваши ответы. Моя ошибка не в соединении, а в цикле, который приводил к сбою сервера, когда у меня было слишком много писем:

imap_open("{mail.domain.com:143/novalidate-cert}INBOX", 'login', 'password')

$mails = imap_search($stream, 'UNSEEN');

rsort($mails);
foreach ($mails as $mailId) {
  imap_fetch_overview($stream, $mailId, 0);
} //that was the mistake when email number is too big!

Ответ 2

Я предполагаю, что вы находитесь за ssl (порт по умолчанию 993)

Пытаться

imap_open("{mail.domain.com:993/imap/ssl/novalidate-cert}INBOX", 'login', 'password') or die('Cannot connect: ' . print_r(imap_errors(), true))

Не забудьте открыть этот порт

Ответ 3

Я написал библиотеку.
Не знаете, что это будет работать для вашего хозяина или нет.
Но вы могли бы попробовать. http://vivoauthimap.vivsoftware.in/

Ответ 4

В моем случае это помогло:

imap_open("{mail.domain.com:110/pop3/notls}INBOX", 'login', 'password')

Ответ 5

В моем случае расширение imap было скомпилировано без опции --with-imap-ssl. Вам нужно передать его в configure или, если вы используете Docker:

docker-php-ext-configure imap --with-imap-ssl
docker-php-ext-install imap

Вы можете проверить, есть ли поддержка SSL, с помощью этой команды:

php -i | grep imap -A 5

Если строка "Поддержка SSL => включена" отсутствует, необходимо перекомпилировать расширение imap.

Отсутствие поддержки SSL приводило к нечетким сообщениям об ошибках:

Warning: imap_open(): Couldn't open stream {imap.gmail.com:993/imap/ssl/novalidate-cert}INBOX
Can't open mailbox {imap.gmail.com:993/imap/ssl/novalidate-cert}INBOX: invalid remote specification