Rails 4动作邮件环境变量

时间:2016-11-07 05:53:41

标签: ruby-on-rails-4 environment-variables actionmailer

我正在使用Rails 4应用程序中的actionmailer创建简单的表单到电子邮件表单。

当我在development.rb文件中使用以下设置时,一切正常:

  config.action_mailer.default :charset => "utf-8"
  config.action_mailer.perform_deliveries = true
  config.action_mailer.raise_delivery_errors = true
  config.action_mailer.delivery_method = :smtp
  config.action_mailer.smtp_settings = {
      address: "mail.hover.com",
      port: 587,
      domain: "blah.com",
      user_name: "dennis@blah.com",
      password: "thisBeMyPassword",
      authentication: 'plain',
      enable_starttls_auto: true,
      openssl_verify_mode: 'none'
  }

但是当我尝试在我的代码中使用ENV变量时,我得到一个身份验证失败错误:

  config.action_mailer.default :charset => "utf-8"
  config.action_mailer.perform_deliveries = true
  config.action_mailer.raise_delivery_errors = true
  config.action_mailer.delivery_method = :smtp
  config.action_mailer.smtp_settings = {
      address: "mail.hover.com",
      port: 587,
      domain: "blah.com",
      user_name: "dennis@blah.com",
      password: ENV["MY_EMAIL_PASSWORD"],
      authentication: 'plain',
      enable_starttls_auto: true,
      openssl_verify_mode: 'none'
  }

当我在控制台中使用printenv并且在代码中粘贴puts ENV["MY_EMAIL_PASSWORD"]时,我可以在终端中看到此变量。

我已经三次检查拼写,大写等等。

1 个答案:

答案 0 :(得分:1)

我无法看到问题,但我可以推荐figaro gem。它使处理环境变量变得非常容易。试一试,让我知道。