2016-03-10 3 views
1

У меня есть ошибка с yii2, я не могу отправлять электронные письма через yii с учетной записью электронной почты. Если мой пароль правильно :( Это мой код:Имя пользователя и пароль не принимаются в yii2

web.php

'mailer' => [ 
      'class' => 'yii\swiftmailer\Mailer', 
      'transport' => [ 
      'class'  => 'Swift_SmtpTransport', 
      'host'  => 'smtp.gmail.com', 
      'username' => '[email protected]', 
      'password' => 'passwd', 
      'port'  => '587', 
      'encryption' => 'tls', 
      ], 
     ], 
     'log' 

Controller.php

Yii::$app -> mailer -> compose() 
      -> setFrom('[email protected]') 
      -> setTo('[email protected]') 
      -> setSubject('Test') 
      -> setTextBody('Plain text content') 
      -> setHtmlBody('It is a test') 
      -> send(); 

This is my error

+1

Вставьте ошибку в вопрос. – starf

ответ

1

Это выглядит, как вы используют Google SMTP-сервер. У Google есть новый секрет безопасности ck, который позволяет отправлять электронные письма из приложений Google. Если вы используете какой-либо другой, вы столкнетесь с такими ошибками. Чтобы исправить это можно сделать следующим образом:

Используйте функцию Sendmail по умолчанию при наличии

'mailer' => [ 
      'class' => 'yii\swiftmailer\Mailer', 
      'useFileTransport' => false, 
     ], 

Я нахожу первое решение более эффективной установки

Изменение Google, чтобы позволить менее безопасные у приложений

Перейдите по этой ссылке, чтобы изменить настройки gmail https://myaccount.google.com/security

0

Я использую следующую конфигурацию и работать правильно

является Pratically равен вашему, но с разницей имя пользователя, является 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' => '[email protected]', 
      'password' => 'mypassword', 
      'port' => '587', 
      'encryption' => 'tls', 
     ], 
    ], 

надежда полезна

Смежные вопросы