zsh heroku和Env变量

时间:2013-03-10 22:28:07

标签: ruby-on-rails-3 heroku mailer

我不知道为什么我无法在myoku服务器上设置我的gmail env变量。我运行

,根据to their docs轻松设置用户名
heroku config:add GMAIL_USERNAME=usersname@gmail.com

但是,现在当我尝试设置密码以便在邮件程序中使用它时

heroku config:add GMAIL_PASSWORD=mypassword

我收到了错误

zsh: no matches found: GMAIL_PASSWORD=mypassword

我不知道为什么我无法以这种方式设置此变量,更不用说为什么我从shell获取此输出。

关于我的这部分设置的一些事情。

- 使用loca_env.yml邮件用户名和密码,将其签入.gitignore(因此在heroku服务器上进行设置。)

邮件程序初始化程序 -

ActionMailer::Base.smtp_settings = {
    :enable_starttls_auto => true,
    :address => "smtp.gmail.com",
    :port => "587",
    :domain => "gmail.com",
    :authentication => :plain,
    :user_name => ENV["GMAIL_USERNAME"],
    :password => ENV["GMAIL_PASSWORD"]
}

ActionMailer::Base.default_url_options[:host] = "myapp.herokuapp.com"

它在本地邮件很好,现在我正在尝试在生产环境中进行测试,而无需在local_env.yml中检入版本控制。简单的我不理解?

2 个答案:

答案 0 :(得分:5)

您几乎总是可以哄骗shell以不同方式处理特殊字符。对于zsh,请尝试以下操作:heroku config:add X='erwrewr#'单引号将确保抑制大多数特殊字符。

答案 1 :(得分:0)

直到另外30分钟搞砸了我才考虑过的事情。

我的实际密码以'#'结尾,导致我的shell错误。对于任何发现自己处于这种边缘情况的人。不确定哪些特殊字符不允许你在不同的shell中设置但是要检查你是否遇到类似的错误。