我将cakephp3.2升级到cakephp3.6。电子邮件功能不起作用,我将cakephp3.2中工作电子邮件中的应用程序文件中的相同代码复制到cakephp3.6中的应用程序文件中。密码存在并且可以正常工作。为了安全起见,我在这里进行了编辑。 3.6中发生了什么变化?
它说“ SMTP服务器不接受密码。”
//in model
public function sendemail($to,$from,$subject,$message) {
$to='xxxx@gmail.com';
$Email = new Email('default');
// $Email->config('gmail3');
$Email->from(['xxx@gmail.com' => 'My Email'])
->to($to)
->subject($subject)
->send($message);
}//public
//in app file
'EmailTransport' => [
'default' => [
'className' => 'Smtp',
'host' => 'ssl://smtp.gmail.com',
'port' => 465,
'username'=>'xx@gmail.com',
'password'=>'xx',
'log' => true,
'context' => [
'ssl' => [
'verify_peer' => false,
'verify_peer_name' => false,
'allow_self_signed' => true
]
]
],
],
'Email' => [
'default' => [
'transport' => 'default',
'from' => 'xx@gmail.com',
//'charset' => 'utf-8',
//'headerCharset' => 'utf-8',
],
],
答案 0 :(得分:0)
'default' => [
'className' => 'Smtp',
'host' => 'smtp.gmail.com',
'port' => 587 //or 465,
'timeout' => 30,
'username' => 'email',
'password' => 'pass',
'client' => null,
'tls' => true,
],
此配置对我有用。