我在使用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();
答案 0 :(得分:1)
您好像使用的是Google SMTP服务器。 Google有一项新的安全检查,只允许您通过Google应用发送电子邮件。如果您使用任何其他,您将遇到此类错误。要解决此问题,您可以执行以下操作:
通过
使用默认的sendmail功能 'mailer' => [
'class' => 'yii\swiftmailer\Mailer',
'useFileTransport' => false,
],
我发现第一个解决方案效率更高
更改Google设置以允许安全性较低的应用
点击此链接更改您的Gmail设置https://myaccount.google.com/security
答案 1 :(得分:0)
我使用以下配置并正确工作
实际上等于你的但有区别的用户名是谷歌邮件用户而不是noyt谷歌应用用户
'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',
],
],
希望是有用的