【问题标题】:Net::SMTPAuthenticationError using Rails ActionMailerNet::SMTPAuthenticationError 使用 Rails ActionMailer
【发布时间】:2014-05-23 15:53:44
【问题描述】:

我刚刚启动了一个我在一月份构建的 Rails 应用程序,它可以通过 Gmail 的 smtp 协议发送电子邮件。今天我得到一个 Net::SMTPAuthenticationError 需要 530-5.5.1 身份验证。我用谷歌搜索并尝试了所有建议,例如重新登录 Gmail、解锁验证码和更改密码。这些都不起作用。

这是我的 development.rb 代码:

config.action_mailer.default_url_options = { host: "localhost:3000" }

config.action_mailer.delivery_method = :smtp
config.action_mailer.perform_deliveries = true

config.action_mailer.smtp_settings = {
  address: "smtp.gmail.com",
  port: 587,
  authentication: "plain",
  enable_starttls_auto: true,
  user_name: ENV["GMAIL_USERNAME"],
  password: ENV["GMAIL_PASSWORD"]
} 

更新

这很奇怪。我将服务器更改为 smtp.yahoo.com,但遇到了同样的 Rails 错误。

更新 2 自从我上次尝试这个应用程序以来,我还获得了一个新的 ISP。会不会有问题?

【问题讨论】:

  • 你试过465等其他端口吗?
  • 可能是一个显而易见的问题,但是在 Gmail 上更改密码后,您是否更新了服务器上的 ENV["GMAIL_PASSWORD"] 环境变量以获取新密码?
  • 试过 465 并且是更新了我的 ENV["GMAIL_PASSWORD"]。

标签: ruby-on-rails actionmailer


【解决方案1】:

我认为这可能是因为 Google 怀疑访问您帐户的网站(我最近也遇到过类似情况)。 登录到您的 gmail 帐户,然后查看页面顶部的警告横幅,指示此可疑活动问题。

点击页面顶部的警告横幅。它应该带你到一个页面,你可以通知 Gmail(通过点击一个按钮......也许还有一个单词验证请求)这确实是你试图访问你的帐户。甚至应该有一本小说试图访问您帐户的实体(在本例中为您的服务器)位置的小地图。

他们应该向您发送一封关于此的电子邮件。 电子邮件应如下所示:

最近有人使用您的密码尝试登录您的 Google 帐户 th.good@gmail.com。这个人正在使用这样的应用程序 作为电子邮件客户端或移动设备。

我们阻止了登录尝试,以防这是劫机者试图 访问您的帐户。请查看登录尝试的详细信息: ...如果这是您,并且您无法访问您的 帐户,请完成

中列出的问题排查步骤

http://support.google.com/mail?p=client_login

希望对您有所帮助。

【讨论】:

【解决方案2】:

只需更改身份验证类型:

config.action_mailer.smtp_settings = {
      :address              => 'smtp.gmail.com',
      :port                 => 587,
      :domain               => 'gmail.com',
      :user_name            => ENV["GMAIL_USERNAME"],
      :password             => ENV["GMAIL_PASSWORD"]
      :authentication       => 'login',
      :enable_starttls_auto => true
}

并确保您具有 ENV["GMAIL_USERNAME"]ENV["GMAIL_PASSWORD"] 的值。它应该是一个真正的 gmail 电子邮件 ID(用户名)及其密码。它会正常工作的。

希望对你有帮助:)

【讨论】:

    【解决方案3】:

    我认为您正在使用 Figaro gem。您必须在application.yml 文件中设置ENV["GMAIL_USERNAME"]ENV["GMAIL_PASSWORD"]Check documentation of Figaro Gem

    检查你的设置。

    config.action_mailer.smtp_settings = {
        :address              => 'smtp.gmail.com',
        :port                 => 587,
        :domain               => 'gmail.com',
        :user_name            => 'my_nick@gmail.com',
        :password             => 'secret_password',
        :authentication       => 'login',
        :enable_starttls_auto => true
      }
    

    【讨论】:

    • 对不起,我没有使用 Figaro。
    • 您在哪里设置了用户名:ENV["GMAIL_USERNAME"],密码:ENV["GMAIL_PASSWORD"]?
    • 这不是问题,因为在config.action_mailer.smtp_settings 内部我尝试对我的用户名和密码进行硬编码,但我得到了同样的错误。
    • 如果是,您的邮箱和密码是否正确?您输入的邮箱和密码是否正确?
    【解决方案4】:

    好吧,我不得不在笔记本电脑上的 Linux 旁边添加一个 Windows 分区。重新安装后,问题就消失了……所以我不知道是什么问题。

    【讨论】:

      猜你喜欢
      • 2011-03-23
      • 2015-01-12
      • 2018-01-12
      • 2017-06-07
      • 2014-11-27
      • 2011-10-20
      • 2014-11-02
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多