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

Laravel使用Gmail SMTP发送重置密码邮件认证失败求助

解决Laravel使用Gmail SMTP发送重置密码邮件的535认证失败问题

1. 修正SMTP端口与加密方式的匹配错误

你的配置里MAIL_PORT=587却使用MAIL_ENCRYPTION=ssl,这是核心问题之一:

  • 587端口对应的加密方式是tls,465端口才适配ssl
    修改.env配置:
MAIL_ENCRYPTION=tls
# 若偏好465端口,可改为:
# MAIL_PORT=465
# MAIL_ENCRYPTION=ssl

2. 确认应用专用密码的生成与使用规范

应用专用密码生效必须满足两个条件:

  • 账号已开启两步验证(2FA)
  • 生成密码时选择「其他(自定义名称)」(比如命名为Laravel),直接复制生成的16位无空格密码填入MAIL_PASSWORD,不要添加任何空格或额外符号

3. 检查Google账号安全状态

  • 登录Google账号安全中心,查看是否因异地登录触发安全锁定,若有则解锁账号
  • 确认未开启限制第三方应用访问的相关设置

4. 清除Laravel配置缓存

修改.env后必须清除缓存,否则Laravel会沿用旧配置:

php artisan config:clear
php artisan cache:clear

5. 强制指定SMTP认证方式(可选)

若仍出现XOAUTH2相关错误,可在config/mail.php的smtp配置中指定仅使用LOGIN/PLAIN认证:

'smtp' => [
    'transport' => 'smtp',
    'host' => env('MAIL_HOST', 'smtp.mailgun.org'),
    'port' => env('MAIL_PORT', 587),
    'encryption' => env('MAIL_ENCRYPTION', 'tls'),
    'username' => env('MAIL_USERNAME'),
    'password' => env('MAIL_PASSWORD'),
    'timeout' => null,
    'auth_mode' => env('MAIL_AUTH_MODE', 'login'), // 指定认证方式
],

6. 验证邮箱账号拼写

确认MAIL_USERNAME是完整的Gmail邮箱地址,无拼写错误(比如漏写@gmail.com)


内容的提问来源于stack exchange,提问作者LEO W1NS

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.02 17:55:57