我正在使用Cake \ Network \ Email \ Email类发送一些电子邮件。
我已经成功发送了一封电子邮件,其中包含我在配置/ app.php上的smtp配置
问题是我不希望配置在那里。 我有这段代码:
function enviacorreo($email, $asunto, $content, $cc=null) {
Email::configTransport('gmail', [
'port'=>$smtpport,
'timeout'=>'30',
'host' => $smtp,
'username'=>$smtpuser,
'password'=>$smtppasswd
]);
$email_obj = new Email();
$email_obj->template('default')
->emailFormat('html')
->to($email)
->from([$smtpuser => $nombreSistema])
->subject($asunto)
->transport('gmail');
if($email_obj->send($content))
return array('exito'=>1,'error'=>'Ninguno');
else
return array('exito'=>0,'error'=>'El correo no pudo ser enviado');
}
我正在关注官方书籍here 我得到的错误是:
传输配置“gmail”丢失。
我知道->transport('gmail');
正在寻找app.php中定义的EmailTransport
数组中的密钥
但。如何在我的代码中使用此“配置”?
希望能够解释清楚。
答案 0 :(得分:4)
错误消息有点误导,因为异常不仅仅是在配置丢失的情况下被抛出,而且如果缺少className
选项,这种情况也是如此( #7204 强>)。
如果你仔细查看文档,你会发现你没有正确地遵循它。
[...]
// Sample smtp configuration. Email::configTransport('gmail', [ 'host' => 'ssl://smtp.gmail.com', 'port' => 465, 'username' => 'my@gmail.com', 'password' => 'secret', 'className' => 'Smtp' // <------ there it is ]);
[...]