You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Laravel 8结合Gmail+XAMPP实现忘记密码发信报SSL错误如何解决

错误原因分析
  • 核心配置不匹配:Gmail SMTP服务的587端口对应TLS加密协议,你当前.env配置中MAIL_PORT=587但MAIL_ENCRYPTION=ssl,加密协议与端口不匹配导致SSL握手阶段版本校验失败,触发对应的OpenSSL报错。
  • Gmail账号权限不符合要求:目前Google已禁止第三方客户端直接使用账号登录密码访问SMTP服务,需使用应用专用密码才能正常发信。
  • 冗余配置可能引发冲突:Laravel的SMTP邮件驱动默认读取项目.env配置,不会调用php.ini、sendmail.ini的邮件配置,额外修改这两个文件的配置可能产生不必要的干扰。
解决步骤
  1. 修正.env邮件配置,参考如下正确配置:
MAIL_MAILER=smtp
MAIL_HOST=smtp.gmail.com
MAIL_PORT=587
MAIL_USERNAME=你的Gmail完整地址
MAIL_PASSWORD=后续生成的Gmail应用专用密码
MAIL_ENCRYPTION=tls
MAIL_FROM_ADDRESS=你的Gmail完整地址
MAIL_FROM_NAME="${APP_NAME}"

如果你偏好使用SSL加密,可将端口改为465,加密方式保留ssl即可,两种配置二选一即可。
2. 配置Gmail账号访问权限

  • 登录Google账号,进入「安全性」设置页面,开启「两步验证」功能
  • 两步验证开启后,在安全性页面搜索「应用密码」,选择应用类型为「邮件」、设备类型对应你的开发设备,生成16位应用专用密码,将该密码填入上述.env的MAIL_PASSWORD字段,禁止使用原账号登录密码。
  1. 清理Laravel配置缓存
    修改完.env配置后,在项目根目录执行命令php artisan config:clear清空配置缓存,确保新配置生效。
  2. 可选操作:将php.ini、sendmail.ini中你修改过的邮件相关配置还原为默认值,避免冗余配置干扰。

内容的提问来源于stack exchange,提问作者zelalem abebe

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.25 11:15:08