Laravel Gmail不工作,"用户名和密码不接受.了解更多…“


Laravel Gmail not working, "Username and Password not accepted. Learn more..."

当我试图通过运行Laravel 4的网站发送电子邮件时,我得到了这个异常:

{"error":{"type":"Swift_TransportException","message":"Expected response code 250 but got code '"535'", with message '"535-5.7.8 Username and Password not accepted. Learn more at'r'n535 5.7.8 http:'/'/support.google.com'/mail'/bin'/answer.py?answer=14257 y70sm14744455qgd.3 - gsmtp'r'n'"","file":"'/var'/www'/vendor'/swiftmailer'/swiftmailer'/lib'/classes'/Swift'/Transport'/AbstractSmtpTransport.php","line":386}}

这是我的邮件配置:

return array(
  'driver' => 'smtp',
  'host' => 'smtp.gmail.com',
  'port' => 465,
  'from' => array('address' => 'mymail@gmail.com', 'name' => 'myname'),
  'encryption' => 'ssl',
  'username' => 'mymail@gmail.com',
  'password' => 'lol',
  'sendmail' => '/usr/sbin/sendmail -bs',
  'pretend' => false,
);

我已经尝试了禁用链接,我在谷歌上找到了这个问题,但它没有什么不同。

有没有办法告诉谷歌"停止屏蔽这个IP,是我"?

我尝试了同样的事情,得到了同样的错误。所以我亲自检查了我的gmail帐户,我收到了一封来自gmail的消息,告诉我他们已经阻止了访问我的电子邮件帐户的尝试。

他们显示了一个选项,通过访问https://www.google.com/settings/security/lesssecureapps来禁用此安全设置。

如果你访问的链接已经登录到你的Gmail帐户,事情实际上会更直接。

警告

正如@kodfire所说:

2022年5月30日,此设置将不再可用。

support.google.com/accounts ? p = less-secure-apps& hl = en

进入此链接并禁用解锁验证码https://accounts.google.com/b/0/DisplayUnlockCaptcha

试试这个:

  1. 将端口更改为587
  2. 进入gmail设置https://www.google.com/settings/security/lesssecureapps

https://www.google.com/settings/security/lesssecureapps并激活它。https://accounts.google.com/b/0/DisplayUnlockCaptcha并激活它

'port' => env('MAIL_PORT', 587), <br>
'encryption' => env('MAIL_ENCRYPTION', 'tls'),

我有很多问题找到这个答案。然后在做了大量的试验和错误之后,我找到了一个解决方案。上面的大多数解决方案对其他人都有效,但它对我的帮助高达50%。

所以,这就是我的工作方式(100%):

  1. 在google中激活2步验证
  2. 现在你可以创建应用程序,打开它。
  3. 创建新的应用程序(其他应用程序),并给出您的应用程序名称
  4. 现在生成密码。

接下来,进入。env文件并更改

    MAIL_USERNAME= 'App Name you created'
    MAIL_PASSWORD= 'Generated Password for that app'

这应该能够从您的gmail帐户发送电子邮件。如果它不适合你,请留下评论。

您是否激活了两步google认证?如果是,则需要定义一个新的"特定于应用程序的密码":http://www.google.com/landing/2step/。

从用户名中删除@gmail.com,您已经提到了smtp。所以不需要在用户名上加上@gmail.com。