Год назад пробовал - всё работало. Конфигов не сохранил, т.к. всё получилось в пол-пинка.
Сейчас хотел сделать и, увы, отправка писем не работает.
Отсылаю со стандартной формы ContactForm, которая идёт из коробки.
I. Через smtp.mail.ru:
Настройки в main-local.php
Код: Выделить всё
'mailer' => [
'class' => 'yii\swiftmailer\Mailer',
'viewPath' => '@common/mail',
'transport' => [
'class' => 'Swift_SmtpTransport',
'host' => 'smtp.mail.ru',
'username' => 'xxx@bk.ru',
'password' => 'yyyyyyyyyy', // Сгенерированный пароль входа на почту для внешних приложений
'port' => 587,//465 // Пробовал оба варианта
'encryption' => 'tls',//'ssl' // Пробовал оба варианта
],
'useFileTransport' => false,
],
Код: Выделить всё
return [
'adminEmail' => 'xxx@bk.ru',
'supportEmail' => 'xxx@bk.ru',
'senderEmail' => 'xxx@bk.ru',
'senderName' => 'xxx@bk.ru',
'user.passwordResetTokenExpire' => 3600,
'user.passwordMinLength' => 8,
];
- Какие данные ему нужны?Expected response code 354 but got code "503", with message "503 Valid RCPT command must precede DATA
II. Через smtp.yandex.ru:
Код: Выделить всё
'mailer' => [
'class' => 'yii\swiftmailer\Mailer',
'viewPath' => '@common/mail',
'transport' => [
'class' => 'Swift_SmtpTransport',
'host' => 'smtp.yandex.ru',
'username' => 'xxxxxx@yandex.ru',
'password' => 'yyyyyyyyyy', // Сгенерированный пароль входа на почту для внешних приложений
'port' => 587,//465 // Пробовал оба варианта
'encryption' => 'tls',//'ssl' // Пробовал оба варианта
],
'useFileTransport' => false,
],
Код: Выделить всё
return [
'adminEmail' => 'xxxxxx@yandex.ru',
'supportEmail' => 'xxxxxx@yandex.ru',
'senderEmail' => 'xxxxxx@yandex.ru',
'senderName' => 'xxxxxx@yandex.ru',
'user.passwordResetTokenExpire' => 3600,
'user.passwordMinLength' => 8,
];
- Пароль и логин верные! Копипастил с почты, перепроверил глазами.Failed to authenticate on SMTP server with username "autovisor22@yandex.ru" using 3 possible authenticators. Authenticator LOGIN returned Expected response code 235 but got code "535", with message "535 5.7.8 Error: authentication failed: This user does not have access rights to this service 1657959521-LhlPrWT9Cz-IehCTeVN
". Authenticator PLAIN returned Expected response code 235 but got code "535", with message "535 5.7.8 Error: authentication failed: This user does not have access rights to this service 1657959521-LhlPrWT9Cz-IehCTeVN
". Authenticator XOAUTH2 returned Expected response code 235 but got code "535", with message "535 5.7.8 Error: authentication failed: Invalid user or password! 1657959521-LhlPrWT9Cz-IehCTeVN".
Контроллер, он стандартный
Код: Выделить всё
public function actionContact()
{
$model = new ContactForm();
if ($model->load(Yii::$app->request->post()) && $model->validate()) {
if ($model->sendEmail(Yii::$app->params['adminEmail'])) {
Yii::$app->session->setFlash('success', 'Thank you for contacting us. We will respond to you as soon as possible.');
} else {
Yii::$app->session->setFlash('error', 'There was an error sending your message.');
}
return $this->refresh();
} else {
return $this->render('contact', [
'model' => $model,
]);
}
}
Код: Выделить всё
public function sendEmail($email)
{
return Yii::$app->mailer->compose()
->setTo($email)
->setFrom([Yii::$app->params['senderEmail'] => Yii::$app->params['senderName']])
->setReplyTo([$this->email => $this->name])
->setSubject($this->subject)
->setTextBody($this->body)
->send();
}
Казалось бы, простая вещь, но работать, почему-то, перестало.
В интернете решений не нашёл, посты про это есть, но ситуации - то опечатки, то несуществующая почта получателя, то ещё какая ерунда.