如何将电子邮件从cP​​anel管道传输到Ruby脚本

时间:2016-10-02 18:16:43

标签: ruby linux cpanel

有人可以解释如何使用cPanel管道选项来运行ruby脚本吗?基本上我想在每次收到电子邮件时运行ruby脚本。然后我想使用电子邮件中的数据在脚本中做一些事情。

我正在为这样的电子邮件设置cpanel选项: enter image description here

在pipe_test.rb脚本中,我正在尝试这样的事情:

email_data = STDIN.read

# Get email address
#....

# Do somthing with the email address
#...

更新#1

经过一些阅读后,我能够通过运行ruby pipe_test.rb test从shell中获取此脚本。

email_data = ARGV[0]

# Save data to a file
File.open("test_pipe_data.txt", 'w') { |file| file.write(email_data) }

# Get email address
#....

# Do somthing with the email address
#...

然而,当我将脚本添加到"管道到程序" cPanel中的文件路径选项似乎没有运行脚本。我尝试添加以下文件路径选项组合,但没有一个工作:

home/pipe_test.rb
home/pipe_test.rb test
home/ruby pipe_test.rb test
home/ruby ‘pipe_test.rb test’
home/‘ruby pipe_test.rb’
home/‘ruby pipe_test.rb test’

更新#2

看起来我的问题的一部分是我需要在我的脚本顶部添加Shebang行,以便shell知道用于运行脚本的程序。所以我把它添加到最顶层:

#!/usr/bin/env ruby

我通过运行确认这是正确的道路:

which ruby

然后我要将./pipe_test.rb cPanel管道添加到程序路径中。现在的问题是当我从shell运行./pipe_test.rb时它会说:

: No such file or directory

我已经运行echo $PATH以确保路径存在且确实存在。所以我再次陷入困境。

1 个答案:

答案 0 :(得分:0)

请在此处阅读有关管道的信息:https://en.wikipedia.org/wiki/Pipeline_%28Unix%29

同时检查:https://mikegriffin.ie/blog/20160525-using-pipe-with-ruby-scripts

您的第一步应该是弄清楚从cPanel到ruby脚本的内容。