在收到的电子邮件上运行linux脚本

| 我写了一个小小的脚本,该脚本在Wikipedia上查找工作,然后将结果打印到命令行。我希望能够将该单词通过电子邮件发送到我的服务器,然后让我的服务器通过电子邮件将结果发送给我。 到目前为止,我有一个名为\'wiki \'的新用户,电子邮件已发送到该用户。我收到很好的电子邮件。在/ etc / aliases中,我已将收到的电子邮件重定向到我编写的脚本中。
# See man 5 aliases for format
wiki: \"|/home/wiki/scripts/wiki\"
很好 我的脚本可以从命令行查找,就像我键入了一样
$ ./wiki <whatever>
当我向Wiki@mydomain.com发送电子邮件时,出现权限被拒绝错误 我的Wiki脚本权限为:
 -rwxr-xr-x 1 wiki wiki  427 2011-04-18 22:54 wiki
怎么了!我需要设置什么权限? 任何帮助表示赞赏。 编辑(11/4/18 8:20 pm): 这是我的剧本。
#!/bin/bash

read MSG
echo $MSG >> \"newfile\"
FROM=$(echo \"$MSG\" | cut -d \" \" -f2)
DATA=$(echo \"$MSG\" | cut -d \" \" -f3)
if [ MSG ]
then
RTN=`nslookup -q=txt $DATA.wp.dg.cx | grep \"text =\" | cut -d\"=\" -f2`

echo $RTN | sendmail -s \"wikipedia: \'$DATA\'\" $FROM

else
echo  wilkipedia nslookup. Please supply a command line argument.
fi
已邀请:
根据您的邮件服务器(例如后缀),您可能需要对其进行配置以允许管道邮件。通常,使用〜/ .procmailrc最简单。
这是我为解决我的问题而做的事情... 我取消了bash脚本,并在python中编写了相同的函数。我使用python是因为它具有电子邮件解析功能。我还通过一些防止字符串转义的代码运行了用户输入,以便可以安全地将其传递给python的
subprocess.popen()
方法。 我试图将stdin写入本地文件,以便可以看到在哪里解析文本,但是邮件应用程序(邮件或后缀,不确定)没有写文件的权限-最终可能是一件好事。为了进行调试,我只是将原始的stdin(电子邮件标头和所有标头)以字符串形式返回,然后通过电子邮件将其发回给我自己以查看发生了什么。 我将/ etc / aliases设置为read
wiki: \"|/home/wiki/scripts/wiki.py\"
对wiki.py的权限为
4 -rw-r--r-- 1 wiki mail 1902 2011-04-19 21:04 wiki.py
这样,邮件程序就可以成功地将其交给您的脚本。如果脚本中有错误并且没有任何电子邮件回发给您,您还可以检查\“ / var / log / mail.log \”的输出。如果邮件到达了脚本,但是由于语法或错误而出错,则应该从MAILER-DAEMON收到一封电子邮件答复,指出该邮件无法交付。 我没有使用
procmail
或有
.procmailrc
文件。
/etc/aliases
很好用。它将您的电子邮件传递到stdin流,然后在python中尝试以下操作:
extra=\"\" 
 while 1:
    line = sys.stdin.readline()
     if not line:
        break
            extra = extra + line.strip(\" \")

要回复问题请先登录注册