1

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

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入版本控制。一些简单的我不明白?

4

2 回答 2

6

您几乎总是可以诱使您的 shell 以不同的方式处理特殊字符。对于 zsh,试试这个:heroku config:add X='erwrewr#' 单引号将确保大多数特殊字符被抑制。

于 2013-03-11T11:46:45.797 回答
0

直到又搞砸了 30 分钟,我才考虑到的东西。

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

于 2013-03-10T22:52:49.617 回答