【问题标题】:How to pipe an email from cPanel to a Ruby script如何将电子邮件从 cPanel 传送到 Ruby 脚本
【发布时间】:2016-10-02 18:16:43
【问题描述】:

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

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

在 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 以确保该路径存在并且确实存在。所以我又被困住了。

【问题讨论】:

    标签: ruby linux cpanel


    【解决方案1】:

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

    还要检查这个:https://mikegriffin.ie/blog/20160525-using-pipe-with-ruby-scripts

    你的第一步应该是弄清楚你从 cPanel 到你的 ruby​​ 脚本得到了什么。

    【讨论】:

    • 我阅读了这两篇文章并根据我从链接中学到的内容添加了更新。不幸的是,我仍然无法让 cPanel 运行脚本。
    • 你的脚本在服务器上吗?看起来您需要使用脚本的完整路径
    • 是的,它在服务器上。我不清楚你的意思。我需要将完整路径添加到 Shebang 或 cPanel 路径?现在,当我从命令行键入 ./pipe_test.rb 时,它甚至都不会运行。所以我假设 cPanel 将无法运行它。
    • 那么:您的文件包含什么?它的位置是什么?你怎么运行它?另外:您发布的图片说您的脚本需要是可执行的。你明白这意味着什么吗?如果你没有基本的 Linux 知识,你很难让它工作。
    • 对于前两个问题,请阅读帖子和更新。我已经回答了他们。我如何运行它是我要问的问题。是的,我明白当它说它需要可执行时是什么意思,但我不确定你是否这样做。这就是为什么我试图用 ./pipe_test.rb 运行它。
    猜你喜欢
    • 2020-11-03
    • 1970-01-01
    • 2011-06-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-08-17
    • 2011-04-19
    • 1970-01-01
    相关资源
    最近更新 更多