我已经将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
答案 0 :(得分:0)
解决了该问题...与在config / bootstrap.php中不正确地加载debugkit插件有关