Почему imap_open выдает ошибку «SSL negotiation failed» при соединении без SSL?

Ссылка скопирована
1 ответ

Вызываю

imap_open("{myhost.com:143/imap}INBOX", "mylogin", "mypassword", 0, 0, ['DISABLE_AUTHENTICATOR' => ['GSSAPI', 'NTLM']]); $err = imap_last_error();

imap_open("{myhost.com:143/imap}INBOX", "mylogin", "mypassword", 0, 0, ['DISABLE_AUTHENTICATOR' => ['GSSAPI', 'NTLM']]); $err = imap_last_error();

Соединение не устанавливается, а переменная $err содержит ошибку:
"TLS/SSL failure for myhost.com: SSL negotiation failed"

Дополнительно:

Ответы:

Интернет предлагает коннектиться так:

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

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

  • Спасибо, за попытку, но не помогло

Скорей всего клиент пытается сделать STARTTLS. Попробуйте сделать

% nc myhost.com 143 * OK IMAP4 ready AAA CAPABILITY * CAPABILITY IMAP4rev1 ID XLIST UIDPLUS UNSELECT MOVE LIST-STATUS STARTTLS LOGINDISABLED AAA OK CAPABILITY completed

% nc myhost.com 143 * OK IMAP4 ready AAA CAPABILITY * CAPABILITY IMAP4rev1 ID XLIST UIDPLUS UNSELECT MOVE LIST-STATUS STARTTLS LOGINDISABLED AAA OK CAPABILITY completed

если увидите термы STARTTLS и LOGINDISABLED - это означает что сервер запрещает вход без TLS и клиент пытается сделать STARTTLS. Можете попробовать флаг /notls (но при LOGINDISABLED это не спасет) или /novalidate-cert - это с большой вероятностью спасет от проблем с TLS-хендшейком

Нужно решить такую задачу?

Опишите проблему, и специалист поможет с настройкой, исправлением ошибки или доработкой сайта. Подберём понятный план работ без лишней переписки.

Заказать помощь
Лучший ответ
1
Ирина WP Ответ

Ошибка "SSL negotiation failed" в случае использования функции imap_open без SSL может возникать по нескольким причинам. Первой возможной причиной является неправильно указанный порт для подключения к почтовому серверу. Если сервер не поддерживает SSL, но порт для SSL-соединения указан в параметрах функции imap_open, то может возникнуть ошибка SSL negotiation failed.

Второй причиной может быть неправильно настроенный сервер почты. Некоторые почтовые серверы могут быть настроены таким образом, что они требуют SSL-соединение для подключения, даже если оно не указано в параметрах функции imap_open. В этом случае необходимо обратиться к администратору сервера для уточнения настроек.

Третьей причиной ошибки может быть использование устаревшей версии PHP или библиотеки OpenSSL. В некоторых случаях возможно, что функция imap_open не совместима с определенными версиями PHP или OpenSSL, что может привести к возникновению ошибки SSL negotiation failed.

Чтобы решить проблему с ошибкой SSL negotiation failed при использовании функции imap_open без SSL, необходимо убедиться, что правильно указан порт для подключения к серверу почты, проверить настройки сервера почты и обновить версии PHP и OpenSSL до последних доступных. Также стоит обратить внимание на наличие необходимых расширений PHP для работы с SSL-соединениями. Если проблема сохраняется, то целесообразно обратиться за помощью к специалисту по работе с почтовыми серверами или разработчику, специализирующемуся на работе с PHP и SSL.

Другие ответы (0)

Пока нет других ответов. Будьте первым, кто поможет автору.

Ответить на вопрос

комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Вам также может быть интересно