Здравствуйте, не отправляются письма с сайта yii2 на почту. Использую PhpMailer.
Вот что прописала в конфиге:
'mailer' => [
'class' => 'zyx\phpmailer\Mailer',
'viewPath' => '@app/mail',
'useFileTransport' => false,
'config' => [
'mailer' => 'smtp',
'host' => 'smtp.yandex.ru',
'port' => '587',
'smtpsecure' => 'tls',
'smtpauth' => true,
'username' => 'test@yandex.ru',
'password' => 'test',
],
],
в Контроллере:
public function actionIndex()
{
/* Создаем экземпляр класса */
$model = new AppointmentForm();
/* получаем данные из формы и запускаем функцию отправки contact, если все хорошо, выводим сообщение об удачной отправке сообщения на почту */
if ($model->load(Yii::$app->request->post()) && $model->appointment(Yii::$app->params['adminEmail'])) {
Yii::$app->session->setFlash('contactFormSubmitted');
return $this->refresh();
/* иначе выводим форму обратной связи */
} else {
return $this->render('index', ['model'=> $model,]);
}
}
В модуле:
public function appointment($email)
{
$content = "<p>Email: " . $this->email . "</p>";
$content .= "<p>Name: " . $this->name . "</p>";
$content .= "<p>Phone: " . $this->phone . "</p>";
$content .= "<p>Date: " . $this->date . "</p>";
$content .= "<p>Body: " . $this->body . "</p>";
if ($this->validate()) {
Yii::$app->mailer->compose(["content" => $content])
->setTo('test@yandex.ru')
->setFrom([\Yii::$app->params['supportEmail'] => $this->name])
->setTextBody($this->body)
->send();
return true;
}
return false;
}
В params.php
return [
'adminEmail' => 'test@yandex.ru',
'supportEmail' => 'test@yandex.ru', //автоматическая отправка почты с данного сайта
];
В чём я ошиблась?