【问题标题】:Rails 4.0 receiving emails - no such file (runner)Rails 4.0 接收电子邮件 - 没有这样的文件(跑步者)
【发布时间】:2014-06-03 08:04:22
【问题描述】:
到目前为止,我一直在使用脚本/运行程序将反弹转发到 eblast-bounceback@mydomain.com 和 eblast-bounceback@dev.mydomain.com。但是它不再在 Rails 4.0 中工作。我似乎也无法在网上找到一个好的资源来说明如何做到这一点。我通常会被定向到“无论何时” gem - 但那是针对 cron 作业,而不是针对“管道到程序”。
所以这基本上就是我目前正在做的事情,但是失败了:
|/home/user/rails/dev.www/script/rails runner 'EBlast.receive(STDIN.read)' -e development
如何让它工作?我不在 Rails 4.1 上,我在 4.0 上。 FWIW 我没有垃圾箱/导轨。上面的命令产生"no such file or directory"。
【问题讨论】:
标签:
ruby-on-rails
ruby-on-rails-4
pipe
runner
email-bounces
【解决方案1】:
实际上我需要做一些事情。
电子邮件 eblast-bounce@dev.mydomain.com 被视为“无法路由”。起初我认为这是因为子域没有任何 MX 记录,所以我添加了一个。但后来我仍然得到了错误。我已经手动更新了/etc/valiases 中的别名文件,以使用符号链接目录通过管道传输到程序(因为我使用 Capistrano 进行部署,并且每次部署后目录最终都会更改)。事实证明,当涉及到 exim 路由时,符号链接由于某种原因不起作用(/home/me/rails_deployments/dev.www/current/bin/rails 失败)。也许我对符号链接的事情有误,但是当我使用下面的解决方案时问题就消失了。
然而,当我最终遇到另一个问题(/usr/bin/env: ruby: No such file or directory)时,这个问题得到了解决。我正在使用 RVM 来管理红宝石/宝石,显然电子邮件转发器不知道红宝石是什么。这导致了最终的解决方案:
(在 cPanel 中,“管道到程序”假定用户主目录 (/home/me/))
.rvm/wrappers/ruby-2.1.0@website/ruby /home/me/rails_deployments/dev.www/current/bin/rails runner 'EBlast.receive(STDIN.read)' -e development
其中 ruby-2.1.0 是我当前的 ruby 版本,@website 是 EBlast.receive 代码库使用的 gemset。
编辑:说得太早了,该命令有自己的一系列问题......(gemfile 不存在)。这太可笑了。