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

resend confirmation mail error Net::SMTPAuthenticationError in Devise::ConfirmationsController#create

Net::SMTPAuthenticationError Devise::ConfirmationsController#create

530-5.5.1 需要身份验证。在

了解更多信息

我正在使用 gem 'devise'.

使用 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

你的 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
  }