Ruby on rails Desive::RegistrationController#创建SMTP-AUTH请求但缺少用户名时参数错误

Ruby on rails Desive::RegistrationController#创建SMTP-AUTH请求但缺少用户名时参数错误,ruby-on-rails,devise,localhost,actionmailer,Ruby On Rails,Devise,Localhost,Actionmailer,我无法从本地主机发送电子邮件。 它是在linux上运行的,现在我正试图在mac上运行我的应用程序,但它已经不起作用了 我有一个错误: ArgumentError in Devise::RegistrationsController#create SMTP-AUTH requested but missing user name 在config/environments/development.rb中: #Action Mailer config config.action_mailer.rai

我无法从本地主机发送电子邮件。 它是在linux上运行的,现在我正试图在mac上运行我的应用程序,但它已经不起作用了

我有一个错误:

ArgumentError in Devise::RegistrationsController#create
SMTP-AUTH requested but missing user name
在config/environments/development.rb中:

#Action Mailer config
config.action_mailer.raise_delivery_errors = true
config.action_mailer.default_url_options = { host: 'localhost', port: 3000 }
config.action_mailer.delivery_method = :smtp
# Send email in development mode.
config.action_mailer.perform_deliveries = true

config.action_mailer.smtp_settings = {
address: "smtp.gmail.com",
port: "587",
domain: "mail.google.com",
authentication: "plain",
enable_starttls_auto: true,
user_name: ENV["GMAIL_USER_ID"],
password: ENV["GMAIL_PASSWORD"]
}
我的env变量很好,我也试着将我的凭证放入代码中,但仍然不起作用:/

我查看了类似的主题,但没有找到解决方案

我能试试什么?

我读到:

我也尝试将我的凭证放入代码中,但仍然不起作用:/

但是你有没有试过用你的gmail id/密码替换你的var env

#Action Mailer config
**********
user_name: "my_username",
password: "my_password"
}
只是确定一下。

好的,解决了

  • 凭据不起作用,因为我没有重新启动服务器(愚蠢的懒惰)
  • 我的env变量不起作用,因为我已将它们放入~.profile中,但它在~.bash_profile中起作用(我使用OS X Yosemite)
  • 是的,就像那样,“我的_email@gmail.com和“我的密码”。