stream_socket_enable_crypto(): SSL operation failed with code 1. OpenSSL Error messages:
error:14090086:SSL routines:ssl3_get_server_certificate:certificate verify failed
如題, 自己搭建的郵件伺服器, 證書採用的是 Lets『s Encrypt, 確定沒有問題. PHP Openssl Extension 已裝, 在命令行里跑 echo QUIT | openssl s_client -crlf -starttls smtp -CAfile /etc/ssl/certs/ca-certificates.crt -connect smtp.example.com:587
返回結果正常.
於是簡單的讀了一下代碼, 發現發送郵件使用了 Laravel 提供的 Mail 模塊. Laravel Mail 的配置文件位於 config/mail.php
, 在 config/mail.php
尾部添加下面這段代碼:
'stream' => [
'ssl' => [
'allow_self_signed' => true,
'verify_peer' => false,
'verify_peer_name' => false,
],
],
保存, 再次發送測試郵件, 發送成功.
發表回復