Почему imap_open выдает ошибку «SSL negotiation failed» при соединении без SSL?
Вызываю
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-хендшейком
Опишите проблему, и специалист поможет с настройкой, исправлением ошибки или доработкой сайта. Подберём понятный план работ без лишней переписки.
Пока нет других ответов. Будьте первым, кто поможет автору.
Ответить на вопрос
Ошибка "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.