procmail不会将电子邮件内容传递给文件

时间:2013-07-17 23:05:47

标签: email procmail

我有一个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所有文件和目录,所以不要认为它是权限问题。

非常感谢任何帮助。

1 个答案:

答案 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