【问题标题】:laravel 5 smtp mail not sending even after changing less secure app即使更改了不太安全的应用程序,laravel 5 smtp 邮件也不会发送
【发布时间】:2020-03-09 11:28:31
【问题描述】:

我已经更改了 gmail 不太安全的应用程序开启(在 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;
    }

每条平局都显示以下错误

预期的响应代码为 250,但得到代码“535”,消息“535-5.7.8 用户名和密码不接受>。了解更多信息,请访问 535 5.7.8 https://support.google.com/mail/?p=BadCredentialst11sm18420889pjo.21 - gsmtp”

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

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

当我尝试使用 PHPMailer 库然后工作但 laravel 邮件不工作

【问题讨论】:

  • 当您更改设置时是否运行了 config:clear?和配置:缓存?
  • @ReubenGomes 是的

标签: php laravel laravel-5 swiftmailer


【解决方案1】:

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

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

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

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

如上...

【讨论】:

    【解决方案2】:

    经过长期研究,发现 laravel 邮件不适用于 tlsssl 很好。所以在如下更改设置后它可以工作 .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 注意:如果不启用两步验证,可能应用密码无效

    【讨论】:

    • 如果您在 gmail 上打开不太安全的应用程序,则不是这样,正常密码将起作用
    • @ReubenGomes 使用应用程序密码然后不再需要安全性降低
    猜你喜欢
    • 2019-01-19
    • 2018-05-07
    • 2022-07-19
    • 1970-01-01
    • 2019-06-18
    • 2017-09-30
    • 2015-05-18
    • 1970-01-01
    • 2019-11-28
    相关资源
    最近更新 更多