无法在cakephp3上发送电子邮件

xmakbtuz  于 2022-11-12  发布在  PHP
关注(0)|答案(1)|浏览(143)

我无法让cakephp 3发送电子邮件。在cakephp 2中我可以这样做没有问题。我正在使用最新的WAMP,和Windows 7上的cakephp3.3。我试图按照指示,但它看起来像我得到了一些基本的错误。我是否还需要配置Wamp,因为我检查了php.ini-development文件,但没有smtp条目可以更改
错误- stream_socket_client():SSL操作失败,代码为1。OpenSSL错误消息:错误:14090086:SSL例程:SSL3_GET_SERVER_CERTIFICATE:证书验证失败stream_socket_client():无法启用加密流_socket_client():无法连接到ssl://smtp.gmail.com:465(未知错误)

controller

   public function singleTutorEmail(){

       $email = new Email();
       $email->transport('gmail3');

       $to='jjxxx@gmail.com';
       $subject='testing';
       $message='hello, dfsfsdfsdf sdfsdf';

       $email->from(['jjxxx@gmail.com' => 'test'])
                  ->to($to)
                  ->subject( $subject)                   
                  ->send($message);
}

in app.php

   'EmailTransport' => [
        'default' => [
            'className' => 'Mail',
            // The following keys are used in SMTP transports
            'host' => 'localhost',
            'port' => 465,
            'timeout' => 30,
            'username' => 'user',
            'password' => 'secret',
            'client' => null,
            'tls' => null,
            'url' => env('EMAIL_TRANSPORT_DEFAULT_URL', null),
        ],
   'gmail3' => [
              'className' => 'Smtp',
             'host' => 'ssl://smtp.gmail.com',
            'port' => 465,
            'timeout' => 30,
            'username' => 'jjxxx@gmail.com',
            'password' => 'xxx',
            'client' => null,
           'context' => [
          'ssl' => [
          'verify_peer' => false,
          'verify_peer_name' => false,
             'allow_self_signed' => true
                 ]
             ]

        ],
    ],

http://book.cakephp.org/3.0/en/core-libraries/email.html
Sending Mail using CakePHP 3.0

9avjhtql

9avjhtql1#

我在使用Cake\Network\Http\Client发出HTTPS请求时遇到了同样的问题
为了解决这个问题,我不得不从https://curl.se/ca/cacert.pem下载“cacert.pem”文件
然后我更新了php.ini,添加了以下行:

openssl.cafile = <PATH_TO_CACERT_PEM>/cacert.pem

不要忘记重新启动Web服务器。如果以上操作不起作用,请尝试更新系统上安装的OpenSSL库。
我真的希望这对你也有用。

相关问题