在Devise :: ConfirmationsController #create中重新发送确认邮件错误Net :: SMTPAuthenticationError

时间:2017-07-19 15:57:55

标签: ruby-on-rails email authentication send

Devise中的Net :: SMTPAuthenticationError :: ConfirmationsController #create

530-5.5.1需要验证。

了解更多信息

我正在使用宝石'设计'。

使用Gmail帐户发送确认电子邮件。

但是,会出现标题中的错误。

我搜索了很多类似于我案例的案例,并在那里尝试了解决方案,但那些完全不起作用,所以我认为我的错误有一些不同的起源

(我尝试的是:1。减少对myaccount.google.com/u/1/security 2. http://www.google.com/accounts/DisplayUnlockCaptcha的保护

development.rb

  config.action_mailer.delivery_method = :smtp
  config.action_mailer.perform_deliveries = true
  config.action_mailer.raise_delivery_errors = true
  config.action_mailer.smtp_settings = {
    :authentication => :plain,
    :address => "smtp.gmail.com",
    :port => 587,
    :domain => "mail.google.com",
    :user_name => ENV["******@gmail.com"],
    :password => ENV["******"],
    :enable_starttls_auto => true
  }

  config.action_mailer.default_url_options = {:host => 'localhost:3000'}

错误页面中最顶层的错误行

def check_response(res)
  unless res.success?
    raise res.exception_class, res.message
  end
end

请帮帮我... TT

1 个答案:

答案 0 :(得分:1)

你的gmail设置问题,你应该删除ENV,因为你直接把字符串放到它(因为我理解这是你的本地开发,这将产生一个错误,因为你也把config.action_mailer.raise_delivery_errors = true

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