首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >生产服务器不识别由Figaro gem设置的环境变量

生产服务器不识别由Figaro gem设置的环境变量
EN

Stack Overflow用户
提问于 2012-10-26 11:46:17
回答 2查看 2.9K关注 0票数 6

我在一个外部文件(config/application.yml)中设置了我的Sendgrid密码,该文件是我用Figaro gem设置的。这在我的本地机器上工作得很好,但在我的服务器上,我得到了一个错误,没有设置密码:

代码语言:javascript
运行
复制
ArgumentError (SMTP-AUTH requested but missing secret phrase)

当我将Sendgrid配置更改为纯文本密码时,它工作得很好,所以我假设Rails无法识别环境变量。奇怪的是,当我进入rails console production并执行puts ENV["SENDGRID_PASSWORD"]时,它工作得很好。

有什么想法吗?

这是我的Sendgrid配置:

代码语言:javascript
运行
复制
config.action_mailer.smtp_settings = {
  :address              => "smtp.sendgrid.net",
  :port                 => 587,
  :user_name            => "chrislawrence",
  :password             => ENV['SENDGRID_PASSWORD'],
  :domain               => "lakecinema.net.au",
  :authentication       => :plain,
  :enable_starttls_auto => true
}
EN

回答 2

Stack Overflow用户

发布于 2012-10-29 12:50:45

我也有同样的问题,我不明白为什么Rails认为我没有给它一个密码。原来我是在一个文件中定义config.action_mailer.smtp_settings,然后在另一个文件中添加键值组合。问题是我使用的是merge而不是merge!,所以我的密码从来没有进入过smtp_settings,而是进入了一个临时哈希。

从这次经历中,我了解到你收到的错误消息是ActionMailer询问“密码在哪里?”

因此,我猜测您的问题与Environment variable in Rails console and Pow相反,即环境变量在Rails服务器上工作,但不在Rails控制台上工作。尝试执行以下命令:

代码语言:javascript
运行
复制
$ echo "$SENDGRID_PASSWORD"

看看你能得到什么。我感觉环境变量并没有被设置,而是Rails控制台中的一个局部变量。

票数 1
EN

Stack Overflow用户

发布于 2016-06-22 12:02:58

它应该是:身份验证=>‘普通’

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13080445

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档