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

如何修复Devise邮件确认中的‘535-5.7.8用户名密码不被接受’错误

解决Rails Devise邮件确认的Net::SMTPAuthenticationError问题

针对你遇到的Gmail SMTP认证失败问题,按以下步骤排查:

1. 启用两步验证并生成应用专用密码

Gmail已停止支持直接使用账号密码登录第三方SMTP服务,必须先开启两步验证(2FA),再生成应用专用密码:

  • 登录Google账号,进入「安全」设置
  • 开启两步验证(按引导完成绑定)
  • 在两步验证设置下方,找到「应用专用密码」,生成一个新密码(选择「邮件」作为应用类型,设备选「其他」)
  • 将SMTP配置里的password字段替换为这个生成的应用密码,而非原账号密码

2. 修正SMTP配置细节

调整config/environments/development.rb中的SMTP设置,移除不必要的配置并确保参数正确:

config.action_mailer.smtp_settings = {
  address: "smtp.gmail.com",
  port: 587,
  authentication: :plain, # 符号或字符串格式均兼容
  enable_starttls_auto: true,
  user_name: "xyz@gmail.com",
  password: "你的应用专用密码", # 替换为生成的应用密码
  domain: "gmail.com"
}
  • 移除openssl_verify_mode: "none",默认SSL验证更安全,也能避免潜在认证问题
  • 确保user_name与Devise配置的mailer_sender(config/initializers/devise.rb中的xxx@gmail.com)尽量一致,减少Gmail拦截概率

3. 检查Google账号安全状态

  • 登录Google账号后,查看「最近的安全活动」,确认是否有SMTP登录被拦截记录,如有需手动解锁
  • 确保账号未被限制第三方应用访问

4. 重启Rails服务器

修改配置后必须重启Puma服务器,新配置才会生效

完成以上步骤后,重新触发邮件确认流程,即可解决认证错误问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.20 04:47:21