У меня ошибка с yii2, я не могу отправлять электронные письма через yii с учетной записью электронной почты. Если мой пароль правильный 🙁 Это мой код:
web.php
'mailer' => [ 'class' => 'yii\swiftmailer\Mailer', 'transport' => [ 'class' => 'Swift_SmtpTransport', 'host' => 'smtp.gmail.com', 'username' => 'user@hya.com.mx', 'password' => 'passwd', 'port' => '587', 'encryption' => 'tls', ], ], 'log'
controller.php
Yii::$app -> mailer -> compose() -> setFrom('users@hya.com.mx') -> setTo('jhon@hya.com.mx') -> setSubject('Test') -> setTextBody('Plain text content') -> setHtmlBody('It is a test') -> send();
Похоже, вы используете сервер SMTP Google. В Google есть новая проверка безопасности, которая позволяет отправлять электронные письма из приложений Google. Если вы используете какой-либо другой, вы столкнетесь с такими ошибками. Чтобы исправить это, вы можете сделать следующее:
Использовать функцию sendmail по умолчанию, используя
'mailer' => [ 'class' => 'yii\swiftmailer\Mailer', 'useFileTransport' => false, ],
Я считаю, что первое решение более эффективно
Измените настройку google, чтобы разрешить менее безопасные приложения.
Перейдите по этой ссылке, чтобы изменить настройку gmail https://myaccount.google.com/security.
Я использую следующую конфигурацию и право работы
является pratic равным вашему, но с разницей имя пользователя – это пользователь почты Google, а не пользователь noyt google app
'mailer' => [ 'class' => 'yii\swiftmailer\Mailer', 'viewPath' => '@common/mail', // send all mails to a file by default. You have to set // 'useFileTransport' to false and configure a transport // for the mailer to send real emails. //'useFileTransport' => true, 'useFileTransport' => false,//set this property to false to send mails to real email addresses //comment the following array to send mail using php's mail function 'transport' => [ 'class' => 'Swift_SmtpTransport', 'host' => 'smtp.gmail.com', 'username' => 'myname@gmail.com', 'password' => 'mypassword', 'port' => '587', 'encryption' => 'tls', ], ],
надежда полезна