【发布时间】:2015-12-21 07:58:56
【问题描述】:
我正在尝试使用 Gmail 发送验证电子邮件,但收到此错误:
stream_socket_client():SSL 操作失败,代码为 1。OpenSSL 错误消息:错误:14090086:SSL 例程:SSL3_GET_SERVER_CERTIFICATE:证书验证失败 stream_socket_client():启用加密失败 stream_socket_client():无法连接到 ssl://smtp.gmail.com:465 (未知错误)
我遵循了Configuring Transports 指南。
Email::configTransport('gmail', [
'host' => 'ssl://smtp.gmail.com',
//'host' => 'smtp.gmail.com',
'port' => 465,
'username' => 'user@gmail.com',
'password' => 'password',
'className' => 'Smtp',
'log'=>true,
//'tls' => true
]);
$correo = new Email();
$correo
->transport('gmail')
->template('registro_exito')
->emailFormat('html')
->to('email@gmail.com')
->from('another_email@gmail.com')
->viewVars([
'nombre_sitio_secundario'=>$nombre_sitio_secundario,
'usuario_id'=>$usuario_id,
'token'=>$token
])
->send();
这是完整的错误日志:
2015-09-24 20:09:39 Error: [Cake\Network\Exception\SocketException] stream_socket_client(): SSL operation failed with code 1. OpenSSL Error messages:
error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed
stream_socket_client(): Failed to enable crypto
stream_socket_client(): unable to connect to ssl://smtp.gmail.com:465 (Unknown error)
Request URL: /faindit/usuarios/registro
Stack Trace:
#0 C:\xampp\htdocs\faindit\vendor\cakephp\cakephp\src\Network\Email\SmtpTransport.php(204): Cake\Network\Socket->connect()
#1 C:\xampp\htdocs\faindit\vendor\cakephp\cakephp\src\Network\Email\SmtpTransport.php(159): Cake\Network\Email\SmtpTransport->_connect()
#2 C:\xampp\htdocs\faindit\vendor\cakephp\cakephp\src\Network\Email\Email.php(1301): Cake\Network\Email\SmtpTransport->send(Object(Cake\Network\Email\Email))
#3 C:\xampp\htdocs\faindit\src\Controller\Component\CorreoComponent.php(65): Cake\Network\Email\Email->send()
#4 C:\xampp\htdocs\faindit\src\Controller\UsuariosController.php(14): App\Controller\Component\CorreoComponent->registroExito(1, 'something@gm...')
#5 [internal function]: App\Controller\UsuariosController->registro()
#6 C:\xampp\htdocs\faindit\vendor\cakephp\cakephp\src\Controller\Controller.php(411): call_user_func_array(Array, Array)
#7 C:\xampp\htdocs\faindit\vendor\cakephp\cakephp\src\Routing\Dispatcher.php(114): Cake\Controller\Controller->invokeAction()
#8 C:\xampp\htdocs\faindit\vendor\cakephp\cakephp\src\Routing\Dispatcher.php(87): Cake\Routing\Dispatcher->_invoke(Object(App\Controller\UsuariosController))
#9 C:\xampp\htdocs\faindit\webroot\index.php(37): Cake\Routing\Dispatcher->dispatch(Object(Cake\Network\Request), Object(Cake\Network\Response))
#10 {main}
值得一提的是,在 php 上启用了 openssl es,而且我还在 Gmail 配置中启用了“访问不太安全的应用程序”。
感谢您的帮助!
【问题讨论】:
标签: php email ssl gmail cakephp-3.0