zsh heroku和Env变量

com*_*ile 1 heroku mailer ruby-on-rails-3

我不知道为什么无法在heroku服务器上设置gmail env变量。我跑,并设置用户名轻松地根据自己的文档,通过运行

heroku config:add GMAIL_USERNAME=usersname@gmail.com
Run Code Online (Sandbox Code Playgroud)

但是,现在当我尝试设置密码以与之配合使用时,可以在邮件中使用

heroku config:add GMAIL_PASSWORD=mypassword
Run Code Online (Sandbox Code Playgroud)

我遇到了错误

zsh: no matches found: GMAIL_PASSWORD=mypassword
Run Code Online (Sandbox Code Playgroud)

我不知道为什么我不能以这种方式设置此变量,更不用说为什么要从我的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"
Run Code Online (Sandbox Code Playgroud)

它可以在本地正常发送邮件,现在我正尝试在生产环境中进行测试,而无需检local_env.yml入版本控制。我不明白的简单东西?

Jon*_*joy 5

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