laravel 5 即使在更改安全性较低的应用程序后,smtp 邮件仍未发送

laravel 5 smtp mail not sending even after changing less secure app

我已经更改了 gmail 不太安全的应用程序 ON(在 gmail 设置中)和我的 .env 如下

MAIL_DRIVER=smtp
MAIL_ADDRESS=rejoanul.alam@gmail.com
MAIL_HOST=smtp.gmail.com
MAIL_PORT=587
MAIL_PASSWORD=myPass
MAIL_ENCRYPTION=tls

之后我的控制器如下

    try {
      Mail::send('admin.users.email', $requestData, function ($message) use ($request) {
      $message->from(env('MAIL_ADDRESS'), 'Rejoan');
      $message->to(trim($request->input('email')))->subject('Account Updated');
     });
    }catch (\Exception $e) {
     echo $e->getMessage();return;
    }

每条领带都显示以下错误

Expected response code 250 but got code "535", with message "535-5.7.8 Username and Password not >accepted. Learn more at 535 5.7.8 https://support.google.com/mail/?p=BadCredentials t11sm18420889pjo.21 - gsmtp "

我的laravel版本是5.2,我做错了什么。也尝试通过应用密码选项启用两步验证但没有成功。

是guzzle相关的问题吗?我的作曲家显示 "guzzlehttp/guzzle": "^6.5"

When I try with PHPMailer library then work but laravel mail not working

错误清楚地表明用户名和密码未被 >接受 "BadCredentials"

我猜你的 MAIL_PASSWORD 有美元 ($) 或哈希 (#)

所以在你的.env中使用双引号

MAIL_ADDRESS=rejoanul.alam@gmail.com
MAIL_HOST=smtp.gmail.com
MAIL_PORT=587
MAIL_PASSWORD="my$Pass#"

如上...

经过长时间的研究,发现 laravel 邮件不适用于 tls,但 ssl 可以。所以按如下方式更改设置后它可以工作 .env 文件

MAIL_DRIVER=smtp
MAIL_ADDRESS=rejoanul.alam@gmail.com
MAIL_HOST=smtp.googlemail.com
MAIL_PORT=465
MAIL_PASSWORD=myPass (this should be app password)
MAIL_ENCRYPTION=ssl

通常您的电子邮件密码不起作用。从此处生成应用密码 https://security.google.com/settings/security/apppasswords 注意:如果不启用两步验证,应用密码可能无法使用