我不知道为什么我无法在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
中检入版本控制。简单的我不理解?
答案 0 :(得分:5)
您几乎总是可以哄骗shell以不同方式处理特殊字符。对于zsh,请尝试以下操作:heroku config:add X='erwrewr#'
单引号将确保抑制大多数特殊字符。
答案 1 :(得分:0)
直到另外30分钟搞砸了我才考虑过的事情。
我的实际密码以'#'结尾,导致我的shell错误。对于任何发现自己处于这种边缘情况的人。不确定哪些特殊字符不允许你在不同的shell中设置但是要检查你是否遇到类似的错误。