Cakephp电子邮件在升级3.5.2-> 3.6.7后无法正常工作

时间:2018-07-16 07:17:09

标签: cakephp-3.0

我已经将CakePHP应用程序从3.5.2升级到3.6.7。我的电子邮件功能在新版本中不再起作用。

config / app.php中的电子邮件传输为:

'EmailTransport' => [
    'default' => [
        'className' => 'Smtp',
        'host' => 'smtp.gmail.com',
        'port' => 587,
        'timeout' => 30,
        'username' => 'user@domain.com',
        'password' => 'secret',
        'client' => null,        
        'context' => [
            'ssl' => [
            'verify_peer' => false,
            'verify_peer_name' => false,
            'allow_self_signed' => true
                    ]
                    ],
            'tls' => true,      
            ],
    ],

并且,电子邮件发送代码为:

 $email = new Email('default');
        $email->addTo($user['email'], $user['fullname']);
        $email->viewVars([
        'messagebody' => 'Hello, I am the message body of the email',
         ]);
        $email->setTemplate('mytemplate','mylayout')
        ->emailFormat('html')
        ->setFrom(['sender@domain.com' => __('Sender Name')])
        ->setSubject(__('Welcome Email'))
        ->helpers(['Html'])
        ->send();

这在3.5.2中可以很好地工作。但是,在3.6.7中,出现如下错误:

  

通知(8):未定义的索引:debugKitLog [ROOT \ vendor \ cakephp \ debug_kit \ src \ Mailer \ Transport \ DebugKitTransport.php,第37行]   通知的内容是:

$config = [
'host' => 'smtp.gmail.com',
'port' => (int) 587,
'timeout' => (int) 30,
'username' => 'user@domain.com',
'password' => 'secret',
'client' => null,
'context' => [
    'ssl' => [
        'verify_peer' => false,
        'verify_peer_name' => false,
        'allow_self_signed' => true
    ]
],
'tls' => true

] $ originalTransport = null

请注意,使用调试工具包的邮件预览时会发生相同的错误。同样,在3.5.2中没有错误,并且电子邮件可以正确发送。该错误仅在3.6.7中发生。

有人可以建议如何解决这个问题吗?以及最新版本的CakePHP导致了什么?

在此先感谢您的帮助或建议。 DBZ

1 个答案:

答案 0 :(得分:0)

解决了该问题...与在config / bootstrap.php中不正确地加载debugkit插件有关