Я пытаюсь отправить электронное письмо из своего приложения CakePHP 3. Но каждый раз, когда он использует SMTP localhost, я получаю сообщение об ошибке.
Итак, вот мой код.
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(['[email protected]' => "Sender"])
->to($email)
->subject($subject)
->send($message);
}
Скажите, пожалуйста, если я что-то не так делаю. Заранее спасибо.






Вы не указали только что созданный транспорт с помощью метода configTransport(). Итак, он берет настройки default из config / app.php.
Вы можете настроить транспорт так:
$emailClass = new Email();
$emailClass->transport('gmail');
ПРИМЕЧАНИЕ. Не рекомендуется, начиная с версии 3.4.0: используйте setTransport () вместо transport ().
Для получения дополнительной информации перейдите по этой ссылке @ https://book.cakephp.org/3.0/en/core-libraries/email.html
Надеюсь это поможет!
Возможный дубликат Конфигурация электронной почты CakePHP