使用Gmail的Heroku Action Mailer只发送一次电子邮件= Net :: SMTPAuthenticationError

时间:2015-11-29 22:31:55

标签: ruby-on-rails email heroku

我有奇怪的行为。我使用gmail在我的Rails应用中发送电子邮件。我将我的Gmail配置为接受安全性较低的应用程序。 但是,我发送了一封电子邮件,然后当我转到我的谷歌帐户时,它会提示我通过手机恢复帐户。

之后,我的应用程序不再发送电子邮件,我在Heroku日志中得到了这个:

Net::SMTPAuthenticationError (534-5.7.9 Please log in with your web browser and then try again.

我的production.rb设置方式如下:

config.action_mailer.delivery_method = :smtp
   config.action_mailer.smtp_settings = {
     :address              => "smtp.gmail.com",
   :port                 => 587,
   :user_name            => 'xxx@gmail.com',
   :password             => 'xxxxxx',
   :authentication       => "plain",
    :enable_starttls_auto => true,
  }

有人有什么想法吗?

3 个答案:

答案 0 :(得分:0)

我认为您必须将domain设置为gmail.com

config.action_mailer.smtp_settings = {
      :address              => "smtp.gmail.com",
      :port                 => 587,
      :domain               => "gmail.com",
      :user_name            => "xxx@gmail.com",
      :password             => "xxxxxxx",
      :authentication       => :plain,
      :enable_starttls_auto => true
}

如果有效则可以,如果没有尝试将:authentication更改为:login

建议:检查Gmail的安全事件,并仔细检查所有安全设置是否完好。

答案 1 :(得分:0)

所以我有几个问题。我注意力不集中的原因是我没有正确阅读过Figaro gem文档而且我没有用figaro heroku:set -e production向Heroku发送正确的信息。

其次,我的帐户会在创建并发送第一封电子邮件后进入锁定状态。要做的步骤:

  • 启用两步验证
  • 生成应用专用密钥
  • 如果您使用费加罗
  • ,请将它们放入config/application.yml
  • 推送并运行figaro命令
  • 您可能需要在Gmail上清除CAPTCHA,请参阅here

答案 2 :(得分:0)

跟随@Mohamed的讽刺 建议:检查Gmail的安全事件,并仔细检查所有安全设置是否完好无损。 链接:https://www.google.com/settings/security/lesssecureapps