【问题标题】:Laravel Gmail not working, "Username and Password not accepted. Learn more..."Laravel Gmail 不工作,“不接受用户名和密码。了解更多...”
【发布时间】:2017-06-03 12:51:12
【问题描述】:

当我尝试通过运行 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,是我”?

【问题讨论】:

    标签: php laravel gmail


    【解决方案1】:

    您是否激活了两步谷歌身份验证?如果是这样,您需要定义一个新的“应用程序专用密码”密码:http://www.google.com/landing/2step/

    【讨论】:

      【解决方案2】:

      我知道这不能回答您的问题...但我会说不要使用 gmail 进行 SMTP 发送。

      使用像 mandrill/mailgun 这样的服务... IE 为这种类型的东西制作的服务。在这里查看我的山魈设置:

      http://laravel.io/forum/07-06-2014-mail-with-mandrill-doesnt-work?page=1#reply-10154

      Mandrill 每月免费为您提供 12k 封电子邮件。

      【讨论】:

      • 刚刚注册了一个 Mandrill 帐户,现在我的 Laravel PHP 应用程序可以正常发送电子邮件。谢谢!
      • Mandrill 已不再免费,请选择 mailgun 等其他服务。
      【解决方案3】:

      我尝试了同样的事情并得到了同样的错误。所以我亲自检查了我的 gmail 帐户,我收到了来自 Gmail 本身的消息,让我知道他们阻止了对我的电子邮件帐户的访问尝试。

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

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

      【讨论】:

        【解决方案4】:

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

        【讨论】:

        • @trinity420 这仅仅是因为出于安全考虑,谷歌默认阻止了不安全的 SMTP 登录。
        【解决方案5】:

        试试这个:

        1. 将端口更改为 587
        2. 转到gmail设置https://www.google.com/settings/security/lesssecureapps 并激活它。

        【讨论】:

          【解决方案6】:

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

          【讨论】:

            【解决方案7】:

            我在寻找答案时遇到了很多问题。然后经过大量的反复试验,我找到了解决方案。上面的大多数解决方案都适用于其他解决方案,但它可以帮助我高达 50%。

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

            1. 在谷歌中激活两步验证
            2. 现在您将能够创建应用程序。打开它。
            3. 创建新应用(其他应用)并提供您的应用名称。
            4. 现在生成密码。

            下一步在 laravel 中,转到 .env 文件并进行更改

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

            这应该能够从您的 gmail 帐户发送电子邮件。 如果对您不起作用,请发表评论。

            【讨论】:

            • 我遇到了问题,因为我使用了用户名而不是“用户名”
            【解决方案8】:

            从用户名中删除@gmail.com,您已经提到过 smtp。所以你的用户名上不需要@gmail.com。我 100% 确定这是你的问题,因为我遇到了这个问题。

            【讨论】:

              猜你喜欢
              • 2017-09-10
              • 1970-01-01
              • 2019-04-10
              • 1970-01-01
              • 2014-11-26
              • 1970-01-01
              • 2022-01-01
              相关资源
              最近更新 更多