【问题标题】:Expected response code 250 but got code "535", with message "535-5.7.8 Username and Password not accepted预期响应代码 250,但得到代码“535”,消息“535-5.7.8 用户名和密码不被接受
【发布时间】:2017-07-22 09:13:33
【问题描述】:

我最近在尝试通过 gmail 发送邮件时遇到了 SwiftMail 错误。

 Expected response code 250 but got code "535", with message "535-5.7.8 Username and Password not accepted.

我试图通过我的 gmail 发送邮件,而谷歌认为我是垃圾邮件(可能是因为我的请求太快了)我收到了一封来自他们的邮件,说我的帐户可以访问,我告诉他们是我。我能够毫无问题地发送邮件,而且它现在才发生。

这是我的 env 文件的内容。

MAIL_DRIVER=smtp
MAIL_HOST=smtp.gmail.com
MAIL_PORT=587
MAIL_USERNAME=talentscoutphil@gmail.com
MAIL_PASSWORD=mypasswordhere
MAIL_FROM=talentscoutphil@gmail.com
MAIL_NAME=talentscout

【问题讨论】:

    标签: php laravel gmail


    【解决方案1】:

    我在互联网上进行了研究,一些答案包括启用“访问较小的应用程序”和“解锁 gmail 验证码”,遗憾的是直到我找到了两步验证。

    我做了以下事情:

    1. 启用两步验证到谷歌HERE

    2. 创建供您的系统使用的应用密码HERE

    3. 我选择了Others(自定义名称)并点击了生成

    4. 转到我在 laravel 中的 env 文件并编辑了这个

      MAIL_USERNAME=talentscoutphil@gmail.com

      MAIL_PASSWORD=生成的密码

    5. 重新启动了我的 apache 服务器并繁荣了! 它又可以工作了

    这是我的解决方案。我创建它是为了至少让其他人不会浪费时间研究可能的答案。

    【讨论】:

    • 我一步一步地跟着,但不能让它工作。请分享您的其他变量(例如加密、端口)。
    • 我自己回答。加密tls,端口587。但最重要的是:php artisan config:cache 更新环境变量!
    • 对我来说,它只是通过禁用两步验证来工作
    • 答案加 1。它也在 yii2 上工作
    • 我完全按照这些步骤完成并解决了我的问题。使用应用密码后,我禁用了两步验证,它仍然有效。
    【解决方案2】:

    这一步对我有用...没有两步验证。 因为我为本地开发创建了一个虚拟帐户,所以我对这个设置没问题。 确保仅在您的帐户不包含任何个人或任何关键数据时才这样做。 这只是解决此错误的另一种方法,并不安全。

    我打开了设置以允许访问安全性较低的应用程序。 在这里形成: https://myaccount.google.com/lesssecureapps

    【讨论】:

    • 在 Symfony 4.3 中为我工作。错误是:app.ERROR:刷新电子邮件队列时发生异常:无法使用 2 个可能的身份验证器在用户名“xxxxxx”的 SMTP 服务器上进行身份验证。 Authenticator LOGIN ......... 用户名和密码不被接受。
    【解决方案3】:

    我也遇到了同样的问题,修改我的gmail密码解决了这个问题,也别忘了启用less secure app on on your gmail account

    【讨论】:

    • 太好了!似乎我们的解决方案有所不同,但至少你得到了它的工作!
    • 这对我来说已经足够了!谢谢:)
    【解决方案4】:

    我一切都很好。还启用了不太安全的应用程序选项。尽管如此,我还是得到了错误。我所做的是:

    • Google 将向您发送严重安全警报
    • 那么您必须授权该活动。 (点击“是的,那是我”类型的东西)
    • 然后您可以尝试再次发送电子邮件。

    【讨论】:

      【解决方案5】:

      这是我的 .env 邮件设置

      MAIL_DRIVER=smtp
      MAIL_HOST=smtp.googlemail.com
      MAIL_PORT=587
      MAIL_USERNAME=example@gmail.com
      MAIL_PASSWORD=hello27
      MAIL_ENCRYPTION=tls
      

      我遇到了与问题中所述相同的错误,但使用

      php artisan config:cache
      

      一切正常

      【讨论】:

        【解决方案6】:

        我遇到了同样的问题,我在

        下解决了这个问题

        去 gmail.com

        我的帐户

        并启用

        允许安全性较低的应用:开启

        开始工作

        【讨论】:

        • 在 Symfony 4.3 中为我工作。错误是:app.ERROR:刷新电子邮件队列时发生异常:无法使用 2 个可能的身份验证器在用户名“xxxxxx”的 SMTP 服务器上进行身份验证。 Authenticator LOGIN ......... 不接受用户名和密码。
        【解决方案7】:

        出于安全原因,Gmail 倾向于阻止使用在其他应用程序中用作用户名的邮寄地址。您应该为邮件目的创建一个新的电子邮件地址,或者您必须转到安全性较低的应用程序访问并打开安全性较低的应用程序的访问权。 Gmail 会向您发送一封确认邮件,您可以从中验证这些更改是否由您自己进行。只有这样,您才能通过应用程序将此类邮寄地址用于邮寄目的。

        【讨论】:

          【解决方案8】:

          config/mail.php 中无需更新任何内容。只需使用此特定密钥将您的凭据放入 .env 即可。这是我的 .env 文件。

          MAIL_DRIVER=smtp
          MAIL_HOST=smtp.gmail.com
          MAIL_PORT=587
          MAIL_USERNAME=example@gmail.com
          MAIL_PASSWORD=********
          MAIL_ENCRYPTION=tls
          

          经过长时间的调试和谷歌搜索后,我遇到了同样的问题,我找到了解决方案。通过启用不太安全的应用程序。电子邮件开始工作。

          如果您的 gmail 通过两步验证是安全的,则您无法启用不太安全的应用。所以关闭两步验证并启用不太安全的应用程序。点击这里enable less secure apps on your gmail account

          【讨论】:

            【解决方案9】:

            我遇到了同样的问题,然后我做了这两个步骤:

            • 在您的 Google 帐户安全策略中启用“允许安全性较低的应用程序”。
            • 重新启动本地服务器。

            【讨论】:

              【解决方案10】:

              我遇到了这个问题。首先检查凭据和用户名,它们都很好,然后重新启动我的服务器(docker stop/start),它现在可以工作了。我相信有缓存的东西

              【讨论】:

                【解决方案11】:

                我遇到了同样的问题并在没有启用 2FA 的情况下解决了它(仍然需要“允许不太安全的应用程序”)。

                查看Google error code list后,我想.env可能有一些错误。

                以下设置在 Laravel 8 中测试并有效:

                MAIL_MAILER=smtp
                MAIL_HOST=smtp.gmail.com
                MAIL_PORT=587
                MAIL_USERNAME=username@gmail.com
                MAIL_PASSWORD='your#password_here'  # put the password in quotes
                MAIL_ENCRYPTION=tls
                MAIL_FROM_ADDRESS=username@gmail.com
                MAIL_FROM_NAME="${APP_NAME}"
                

                请记住将密码放在引号中。这对我有用。

                【讨论】:

                • 引号中的密码有效,您还需要执行以下操作:php artisan config: cache
                猜你喜欢
                • 1970-01-01
                • 1970-01-01
                • 2022-08-12
                • 1970-01-01
                • 1970-01-01
                • 2016-05-22
                • 2021-08-05
                相关资源
                最近更新 更多