【问题标题】:Laravel Failed to authenticate on SMTP server with usernameLaravel 无法使用用户名在 SMTP 服务器上进行身份验证
【发布时间】:2019-03-11 10:28:24
【问题描述】:

我正在尝试通过 Laravel 发送电子邮件。 但它正在出错。

.env 文件配置如下:

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

控制器代码如下:

 $data = array('name'=>"Ripon Uddin", "body" => "Test mail");

    Mail::send('email', $data, function($message) {
        $message->to('ToEmailID@yahoo.com','To My Yahoo')->subject('Laravel Test Email');
        $message->from('ToFromID@gmail.com','Ripon Uddin (Laravel Lover)');
    });

错误获取:

未能使用 3 个可能的身份验证器在用户名“myEmailID@gmail.com”的 SMTP 服务器上进行身份验证。身份验证器登录返回 Swift_TransportException:预期响应代码 235,但得到代码“535”,消息“535-5.7.8 用户名和密码不被接受。了解更多信息,请参阅 535 5.7.8 https://support.google.com/mail/?p=BadCredentialsr18-v6sm7406256pgv.17 - gsmtp” in

【问题讨论】:

  • 请运行php artisan config:cache 重新缓存.env
  • 确保您的帐户允许使用安全性较低的应用程序:support.google.com/accounts/answer/6010255?hl=en
  • @KirkBeard 我允许这个先生。
  • @kuromoka 我已经试过这个先生.. 结果否定
  • 改用Mailgun,你的头痛就会消失!

标签: php laravel-5.6


【解决方案1】:

如果您在 Gmail 设置中启用了“允许不太安全的应用”设置,则此配置适用于 Gmail

mailer_transport: smtp
mailer_host: smtp.gmail.com
mailer_port: 465
mailer_encryption: ssl
mailer_auth_mode: login
mailer_user: xxxx@xxxxxxx.com
mailer_password: "xxxx"

如果您在 gmail 设置中将服务器的 ip 列入白名单(请参阅https://support.google.com/a/answer/2956491),则此功能适用于 Gmail Suite

mailer_transport: smtp
mailer_host: smtp-relay.gmail.com
mailer_port: 587
mailer_encryption: tls
mailer_auth_mode: login
mailer_user: xxx@xxxxxxx.com
mailer_password: "xxxx"

【讨论】:

  • 先生,我尝试了您的以下链接和解决方案...当我尝试您的最佳解决方案时,它显示错误...错误是:“预期响应代码 250,但得到代码“530”,消息“530” -5.5.1 需要验证。在 530 5.5.1 support.google.com/mail/?p=WantAuthError q21-v6sm36318723pfq.51 - gsmtp 了解更多信息“当我尝试登录 Gmail 套件时,它向我显示”admin.google.com 仅适用于 G Suite 帐户。普通 Gmail 帐户不能用于登录 admin.google.com”
  • 所以,如果我们没有 GSuite,我们就只能被淹没了,对吧?不是一个很好的解决方案。在我切换到 Laravel 之前,我的 localhost 电子邮件一直有效......
【解决方案2】:

您不需要 GSuite 来执行此操作...我已经多次使用 Laravel 和 GMail 进行此集成。只需转到您的 Google 帐户 > 安全 > 安全性较低的应用访问权限,然后点击“启用访问权限(不推荐)”See image for more info

【讨论】:

  • 唯一的答案
【解决方案3】:

转到此link 或 gmail 的应用程序密码页面,然后选择“邮件”作为“应用程序”,将客户名称选择为“设备”。然后您将获得应用程序密码。 只需在生产中的 config 文件夹下的 laravel mai.php 或开发模式下的 env 文件中。将生成的代码粘贴到密码部分'password' => 'generated code', 毕竟运行:php artisan config:cache

【讨论】:

    【解决方案4】:

    确保您的用户凭据在 .env 文件中正确。

    尝试将您的密码放在引号中。例如:MAIL_PASSWORD="mypassword"

    应用您的更改运行

    php 工匠配置:缓存

    【讨论】:

      【解决方案5】:

      您是否打开了“允许安全性较低的应用”?去这个链接

      https://myaccount.google.com/security#connectedapps

      查看登录和安全 -> 具有帐户访问权限的应用菜单。

      您必须打开“允许安全性较低的应用”选项。

      【讨论】:

        猜你喜欢
        • 2020-06-11
        • 2018-01-13
        • 2019-10-06
        • 2020-01-12
        • 2021-06-11
        • 1970-01-01
        • 1970-01-01
        • 2019-01-20
        • 2020-08-07
        相关资源
        最近更新 更多