Обновился до PHP 7, не уходит почта с FormIt
Здравствуйте. Обновился с PHP 5.5 до PHP 7, все чудесно, но я так понял с версии РHP 5.6 произошли изменения по работе с TLS сертификатами. И вот Postfix на VPS — сервере уже не хочет от модекса, да и от Wordpress тоже принимать соединение. Пишет что проблема с CA сертификатами. Перегенерировал самоподписные сертификаты, результат тот же. Может кто боролся с таким? Подскажите.
[2016-04-30 21:40:10] (ERROR @ /var/www/web1/www/core/model/modx/mail/phpmailer/class.smtp.php : 343) PHP warning: stream_socket_enable_crypto(): SSL operation failed with code 1. OpenSSL Error messages:
error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed
[2016-04-30 21:40:10] (ERROR @ /var/www/web1/www/core/components/formit/model/formit/fihooks.class.php : 552) [FormIt] Произошла ошибка при попытке отправить почту. Ошибка соединения с SMTP-сервером https://github.com/PHPMailer/PHPMailer/wiki/Troubleshooting Комментарии: 3
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
В php.ini на сервере прописываем путь к CA сертификату
Далее в настройках почты в панели управления MODx в SMTP-хосты (mail_smtp_hosts) прописываем FQDN имя нашего хоста, такое же как в Common Name при создании SSL сертификата, иначе не заработает. Теперь отправка почты через SMTP с шифрованием TLS средствами PHP работает. Такой вот маленький момент вроде как начиная с PHP 5.6 и дальше.
У меня на сервере несколько доменов, можно прописать в конфиге гаждого сайта почтовый сервер mail.site1.ru т.к. ip одинаковый же, и прописать в php.ini сертификат для этого домена, будет ли он работать для всех?
в общем решил понизить php на 5.6 и увидел тут ошибку
А решение очень простое
apt-get install --reinstall ca-certificates
update-ca-certificates
после чего не стал понижать php, а решил попробовать и юху… работает отправка)))
Может кому пригодится данное решение вопроса.