Devise::RegistrationsController#create SMTP-AUTH 中的 ArgumentError 已请求但缺少用户名

ArgumentError in Devise::RegistrationsController#create SMTP-AUTH requested but missing user name

我在从本地主机发送电子邮件时遇到问题。 它在 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 变量很好,我也尝试将我的凭据放入代码中,但它仍然不起作用:/

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

我可以尝试什么?

我阅读了:

I tried put my credential into code as well and it still doesn't work :/

但是你试过用你的 gmail id/password 替换你的 var env 吗?

#Action Mailer config
**********
user_name: "my_username",
password: "my_password"
}

只是为了确定。

好的,解决了。

  1. 凭据没有工作,因为我没有重新启动我的服务器(愚蠢的懒惰)
  2. 我的环境变量不起作用,因为我将它们放入 ~.profile 但它在 ~.bash_profile、that was helpful 中起作用(我使用 OS X Yosemite).