Yii2 отправка писем через SMTP сервер gmail



Привет всем. Настраиваю отправку почты для восстановления пароля на Yii2 advanced. Делаю так, пошагово:



1. Чтобы отправлять email письма с существующего почтового аккаунта google при использовании php фреймворка Yii2, скорректировал конфигурационный файл /frontend/config/main.php следующим образом:




$config = [
'id' => 'basic',
'name' => 'My Site Name',
'basePath' => dirname(__DIR__),
'bootstrap' => ['log'],
'language' => 'ru-RU',
'components' => [

//...

'mailer' => [
'class' => 'yii\swiftmailer\Mailer',
'useFileTransport' => false,
'transport' => [
'class' => 'Swift_SmtpTransport',
'host' => 'smtp.gmail.com', // SMTP сервер почтовика
'username' => '<username>@gmail.com', // Логин (адрес электронной почты)
'password' => '<password>', // Пароль
'port' => '587', // Порт
'encryption' => 'tls', // Шифрование
],
],

//...

],
];


2. Код отправки, примерно в таком формате:




return Yii::$app
->mailer
->compose(
['html' => 'passwordResetToken-html', 'text' => 'passwordResetToken-text'],
['user' => $user]
)
->setFrom([Yii::$app->params['supportEmail'] => Yii::$app->name . ' robot'])
->setTo($this->email)
->setSubject('Password reset for ' . Yii::$app->name)
->send();


После отправки получаю ошибку такого вида: "Expected response code 250 but got code “535”, with message "535-5.7.8 Username and Password not accepted ......." и так далее.



Разрешения на доступ к небезопасным приложениям в аккаунте гугла дал. Что не так?


837   2  

Comments

  1. Гриня
    Гриня 5 лет назад
    <p>Блин, я тоже упарывался в такую штуку.</p>

    <p>Для себя я решил проблему так:</p>

    <p>1. Включил <strong>двухэтапную аутентификацию</strong> в Google <a href="https://www.google.com/landing/2step/" style="padding:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;font-family:inherit;font-size:15px;vertical-align:baseline;text-decoration:underline;">ЗДЕСЬ</a></p>

    <p>2. Создал приложение (Приложение -&gt; Почта, Устройство -&gt; Другое) <a href="https://security.google.com/settings/security/apppasswords" style="padding:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;font-family:inherit;font-size:15px;vertical-align:baseline;text-decoration:underline;">ЗДЕСЬ</a></p>

    <p>    Нажал "Создать"</p>

    <p>3. Создал пароль приложения для использования у себя</p>

    <p>Мне это помогло, надеюсь и тебе поможет</p>
  2. Иван
    Иван 5 лет назад
    <p>Спасибо, мне помогло</p>