Я получаю следующую ошибку при попытке подключиться к SMTP + SSL через PHP с помощью nginx + PHP 5,
Could not connect to smtp host 'ssl://smtp.gmail.com' (5) (Unable to find the socket transport "ssl" - did you forget to enable it when you configured PHP?)
В phpinfo я вижу:
OpenSSL support disabled (install ext/openssl)
Это заставляет меня думать, что я неправильно установил OpenSSL.
Я прочитал кучу мест, где мне следует раскомментировать следующую строку:
extension = php_openssl.dll
Эта строка не существует, поэтому я добавил ее в конец моего php.ini безрезультатно. На моем сервере нет файла php_openssl.dll.
Строка, о которой вы говорите, действительно активирует PHP-расширение openssl на машинах с Windows, хотя я сомневаюсь, что вы используете nginx в Windows.
extension = openssl.so загружает расширение openssl в мой ящик, вам необходимо, чтобы PHP был скомпилирован с поддержкой openssl:
--with-openssl[=DIR]
или / и посоветуйте Управлению пакетами вашего дистрибутива правильно / правильно построить расширение.
Файл php_openssl.dll не существует на моем сервере
Затем вам необходимо установить его (для этого также требуется совместимая установка openSSL). Вглядываясь в свой хрустальный шар, я вижу, что вы работаете в MSWindows - вы использовали пакетную установку для PHP? Если да, то какой?
Бинарный дистрибутив с php.net включает dll-заглушку php - если ее нет на вашем компьютере, вам может потребоваться переустановить php. затем установить openssl и разрешите загрузку расширения.
В качестве альтернативы вы можете просто направить SMTP-трафик через шпилька/станнель