2

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

任何帮助将不胜感激。

4

1 回答 1

3

您的脚本通过标准输入 (STDIN) 获取消息。尝试:

 #!/bin/bash
 echo "Trying to get e-mail" > success.txt
 # append data read from STDIN to success.txt file
 cat >> success.txt

顺便说一句,对于更复杂的脚本,使用自定义锁来避免并行运行两个脚本:

:0 w :fooscript.lock
* ^From:(.*\<)?(test@gmail\.com)\>
| /var/log/user1/fooscript.sh
于 2013-07-18T05:00:06.370 回答