我在rails应用程序中使用foreman作为环境变量。在我的config / enviroments / development.rb上,我有以下代码:
config.action_mailer.smtp_settings = {
address: "smtp.gmail.com",
port: "587",
domain: "gmail.com",
authentication: "plain",
enable_starttls_auto: true,
user_name: ENV['GMAIL_USERNAME'],
password: ENV['GMAIL_PASSWORD']
#user_name: "user@gmail.com",
#password: "password"
}
和我的.env文件如下:
GMAIL_USERNAME=user@gmail.com
GMAIL_PASSWORD=password
我的Procfile是:
web: bundle exec rvmsudo rails s -p 80
因此,如果我运行#34; foreman start",我收到以下消息:
Net::SMTPAuthenticationError in Devise::ConfirmationsController#create
530-5.5.1 Authentication Required
但是,如果我评论与环境变量相关的行并取消注释那些现在在development.rb中注释的行,那么一切正常。
所以我想问题是工头没有正确获取环境变量。 我使用带分支的git,忽略了Procfile和.env
我的代码有什么问题吗?
答案 0 :(得分:0)
看起来没有设置环境变量。你用哪种方法做到这一点? Here's an article that explains several methods.
尝试在命令行上手动设置它们:
export GMAIL_USERNAME="user@gmail.com"
export GMAIL_PASSWORD="password"
然后在命令提示符下键入env
以验证它们是否已设置。然后给它一个旋转。