我正在尝试从CakePHP 3应用程序发送电子邮件。但是每次它使用localhost SMTP时,我都会收到错误消息。
这是我的代码。
public function sendEmail($email, $subject, $message){
// Sample SMTP configuration.
$this->loadModel('Generalsettings');
$query = $this->Generalsettings->find('all')->where(['meta_key' => 'smtp_details'])->applyOptions(['default' => false]);
$smtpdetail = $query->first();
$detail = json_decode($smtpdetail->value);
Email::configTransport('gmail', [
'host' => $detail['host'], //value is 'ssl://smtp.gmail.com'
'port' => $detail['port'], //value is 465
'username' => $detail['username'],
'password' => $detail['password'],
'className' => 'Smtp'
]);
$emailClass = new Email();
$emailClass->from(['er.dhimanmanoj@gmail.com' => "Sender"])
->to($email)
->subject($subject)
->send($message);
}
请告诉我我做错了什么。预先感谢。
答案 0 :(得分:0)
您尚未指定刚使用configTransport()
方法创建的传输方式。因此,它采用了config / app.php中的default
设置。
您可以这样设置传输:
$emailClass = new Email();
$emailClass->transport('gmail');
注意:自3.4.0版起不推荐使用:使用setTransport()代替transport()。
有关更多信息,请参阅此链接@ https://book.cakephp.org/3.0/en/core-libraries/email.html
希望这会有所帮助!