带有 SMTP 的 Cakephp 3 电子邮件无法正常工作

Cakephp 3 email with SMTP not working

我正在尝试从我的 CakePHP 3 应用程序发送电子邮件。但是每次它使用本地主机 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);
    }

如果我做错了什么请告诉我。提前致谢。

您尚未指定刚刚使用 configTransport() 方法创建的传输。所以它采用 config/app.php.

中的 default 设置

您可以像这样设置传输:

$emailClass = new Email();
$emailClass->transport('gmail');

注意:3.4.0 版后已弃用:使用 setTransport() 而不是 transport()。

更多信息请参考这个link @https://book.cakephp.org/3.0/en/core-libraries/email.html

希望对您有所帮助!