procmail не отправляет содержимое электронной почты в файл

У меня есть постфиксный сервер и 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 ответ

Решение

Ваш скрипт получает сообщение через стандартный ввод (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
Другие вопросы по тегам