535-5.7.8 使用 Gmail 的 Rails 邮件程序不接受用户名和密码

535-5.7.8 Username and Password not accepted in Rails Mailer using Gmail

我正在使用 Rails Mailer 和 Gmail 发送电子邮件。但是我一直收到 Net::SMTPAuthenticationError 535-5.7.8 Username and Password not accepted 错误。

我检查了有关此问题的其他问题,但不幸的是,它们没有帮助。

我启用了两步验证,我确实为我的 Rails 应用程序创建了应用程序密码。

这是我在production.rb中的配置:

  config.action_mailer.perform_caching = false

  config.action_mailer.delivery_method = :smtp
  host = 'myhost'
  config.action_mailer.default_url_options = { host: host }

  config.action_mailer.smtp_settings = {
    address: 'smtp.gmail.com',
    domain: 'myhost',
    port: 587,
    user_name: 'myemail@domain.com',
    password: ENV['GMAIL_APP_PASSWORD'],
    authentication: 'plain',
    enable_starttls_auto: true
  }

现在,值得注意的是,我使用的是非 Gmail 地址,但我使用的是 GSuite,它允许我使用该地址登录 Gmail,并将其用作 Gmail 地址。

如果这意味着什么,在尝试发送带有 Rails 的电子邮件后,我确实收到了一封有关阻止登录警报的电子邮件。再次注意,我使用的是应用程序密码,而不是帐户的通用密码。

看到一些回答说我必须启用安全性较低的应用程序选项,但我无法在两步激活时启用它。

安全性较低的应用程序

您是否允许安全性较低的应用程序?请这样做,看看是否有帮助。 Less secure apps

清除验证码

Display Unlock Captcha

2fa 使用应用密码。

如果在 Gmail 中使用两步验证,您可能需要应用程序密码。 Create & use App Passwords

Xoauth2

如果仍然无效,您可能需要考虑检查 xoauth2-protocol