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

通过ActionMailer发送Gmail邮件时出现身份验证错误

解决ActionMailer通过Gmail发送邮件的安全验证问题

兄弟,我太懂你这种碰到Gmail安全提示的糟心感了!你之前试的那些方法其实现在已经不太管用啦——Google早在2022年就把「不太安全的应用」这个选项给淘汰了,所以哪怕你开了,还是会触发安全警告。给你一套现在能用的靠谱方案:

  • 第一步:开启Google账户的两步验证(2FA)
    这是后续操作的前提,登录你的Google账户后,进入「安全」页面,找到「两步验证」选项,按照提示完成绑定(可以选手机验证码或者Google Authenticator这类验证器),完成后才能生成专用的应用密码。

  • 第二步:生成App Password(应用专用密码)
    开启两步验证后,回到「安全」页面,就能看到「App Passwords」选项(没开2FA的话这个选项不会显示哦):

    1. 选择应用类型为「Mail」
    2. 设备选「Other」,随便输入一个标识比如「Rails ActionMailer」
    3. 点击生成,会得到一个16位的字符串密码,把它存好,这个就是你要在ActionMailer里用的密码,不是你的Gmail登录密码!
  • 第三步:调整ActionMailer的开发环境配置
    打开你的config/environments/development.rb,把SMTP设置改成下面这样:

    config.action_mailer.delivery_method = :smtp
    config.action_mailer.smtp_settings = {
      address:              'smtp.gmail.com',
      port:                 587,
      domain:               'gmail.com',
      user_name:            '你的完整Gmail地址@gmail.com',
      password:             '刚才生成的16位App Password',
      authentication:       'plain',
      enable_starttls_auto: true
    }
    

    这里注意authentication用plain就可以,enable_starttls_auto一定要设为true,确保连接是加密的,这也是Google要求的。

  • 第四步:测试发送邮件
    启动Rails控制台,跑个测试命令验证一下:

    # 假设你有个UserMailer和welcome_email方法
    UserMailer.welcome_email(User.first).deliver_now
    

    要是能成功收到邮件,就说明配置没问题,也不会再收到那个烦人的不安全应用登录提示了。

另外提一句,要是你是在生产环境用邮件服务,更建议用SendGrid、Mailgun这类专门的邮件服务商,Gmail有发送数量限制,而且容易被当成垃圾邮件哦。

内容的提问来源于stack exchange,提问作者S. Harper

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.19 08:11:39