我將我的Sendgrid密碼設置在我用Figaro gem設置的外部文件(config/application.yml)中。這工作得很好我的本地機器上,但我的服務器上,我得到一個錯誤,沒有密碼已設置:生產服務器無法識別由Figaro設置的環境變量gem
ArgumentError (SMTP-AUTH requested but missing secret phrase)
當我改變Sendgrid配置,只是它工作正常的明文密碼,所以我認爲Rails沒有識別環境變量。奇怪的是,當我進入rails console production
並執行puts ENV["SENDGRID_PASSWORD"]
它工作正常。
任何想法?
這裏是我的Sendgrid配置:
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
}
我得到使用ENV變量,在一個初始化設置相同的行爲,對象內(郵件程序文件)或主體(在視圖郵包)。它忽略了我設置的ENV變量,即使在緩存清除所有內容後,重新啓動服務器等等。但是,在控制檯中的值是正確的。不使用費加羅,不限於此。 – JosephK