我有一个postfix服务器和procmail安装并正常工作。 问题是当我尝试将电子邮件的内容输出到文件时。
我有以下脚本: /var/log/user1/fooscript.sh
#!/bin/bash
echo "Trying to get e-mail" > success.txt
echo $1 >> success.txt
/var/log/user1/.procmailrc
VERBOSE=off
PMDIR=$HOME/.procmail
LOGFILE=$PMDIR/procmail.log
INCLUDERC=$PMDIR/rc.filters
/var/log/user1/.procmail/rc.filters
:0
* ^From:(.*\<)?(test@gmail\.com)\>
| /var/log/user1/fooscript.sh
发送电子邮件后,/ var / log / user1 /。procmail / rc.filters 包含:
From test@gmail.com Thu Jul 18 05:08:13 2013
Folder: /var/log/user1/fooscript.sh 513
但成功文件只显示:
Trying to get e-mail
(empty line)
我chmod 777所有文件和目录,所以不要认为它是权限问题。
非常感谢任何帮助。
答案 0 :(得分:3)
您的脚本通过标准输入(STDIN)获取消息。尝试:
#!/bin/bash
echo "Trying to get e-mail" > success.txt
# append data read from STDIN to success.txt file
cat >> success.txt
对于更复杂的脚本,BTW使用自定义锁来避免并行运行两个脚本:
:0 w :fooscript.lock
* ^From:(.*\<)?(test@gmail\.com)\>
| /var/log/user1/fooscript.sh