Username and Password not accepted in yii2

╄→尐↘猪︶ㄣ 提交于 2019-12-11 09:55:45

问题


I have a error with yii2, I can't send emails via yii with a email account. If my password is correct :( This is my code:

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();


回答1:


It looks like you are using Google SMTP server. Google has a new security check that only allows you to send emails from google apps. If you are using any other you will run into such errors. To fix this you can do as follows:

Use default sendmail function by having

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

I find the first solution more efficient

Change google setting to allow less secure apps

Follow this link to change you gmail settion https://myaccount.google.com/security




回答2:


I use the following configuration and work right

is pratically equals to yours but with a difference the username is google mail user and not an noyt google app user

    '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',
        ],
    ],

hope is useful



来源:https://stackoverflow.com/questions/35905436/username-and-password-not-accepted-in-yii2

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!