繁体   English   中英

Laravel 无法使用用户名在 SMTP 服务器上进行身份验证

[英]Laravel Failed to authenticate on SMTP server with username

我正在尝试通过 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=BadCredentials r18-v6sm7406256pgv.17 - gsmtp“在

你不需要 GSuite 来做这件事......我已经用 Laravel 和 GMail 做了很多次这种集成。 只需转到您的 Google 帐户 > 安全 > 不太安全的应用访问,然后点击“启用访问(不推荐)”查看图片了解更多信息

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

谷歌改变了它的安全政策。 现在,“允许安全性较低的应用程序”选项在登录和安全下不可用。

这个想法是 Gmail 不允许任何应用程序访问用户的 Gmail 帐户,即使使用其真实的用户名和密码也是如此。 这就是人们收到错误的原因。 新机制是您应该在您的 Google 帐户中创建一个应用程序,Google 将为该应用程序生成一个密码。 Gmail 将允许使用该密码和真实用户名/Gmail ID 进行访问。

解决办法是

第 1 步:登录您的 Gmail 帐户并“管理您的帐户”,如下图所示

在此处输入图像描述

第 2 步:单击左侧边栏中的安全选项卡,

在此处输入图像描述

第 3 步:首先为 SMTP 访问启用两步验证。

在此处输入图像描述

在启用两步验证之前,您不会看到“应用程序密码”选项。 启用两步验证后,单击“应用程序密码”。 你会看到这样

在此处输入图像描述

单击第一个下拉菜单并选择“其他(自定义名称)”。 在新窗口中写下您的应用程序名称和 git Generate 按钮。 复制显示的密码。

使用此密码,而不是您的真实 Gmail 密码。 SMTP 配置应该是这样的

在此处输入图像描述

如果您在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 套件

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"

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

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

应用您的更改运行

php工匠配置:缓存

您是否打开了“允许安全性较低的应用程序”? 转到此链接

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM