我有一个procmail食谱,它将邮件的正文发送给一个脚本。运行良好,但先将邮件发送到我的默认文件夹,而不需要正文。
:0
* ^Subject.*Telemetry rotate$
{
:0 bf
! `/usr/bin/php -f /path/to/script/script.php`
}如何让procmail将正文发送到我的脚本而不删除它,或者将副本发送到文件夹,然后删除原始文件。
发布于 2018-12-18 19:29:56
你这里有一些错误。f标志要求将消息替换为来自过滤器的输出(尽管b将此操作限制在主体上)。牙套在这里也是多余的。所以我会和
:0b
* ^Subject.*Telemetry rotate$
! `php -f /path/to/script/script.php`如果计划确实是(1)将主体传递给PHP,(2)捕获脚本的输出(这是`backticks`所做的),(3)将消息转发到捕获的地址(这就是!操作所做的)。
如果你的意图仅仅是把身体传递给你的剧本,那就是
:0b
* ^Subject.*Telemetry rotate$
| php -f /path/to/script/script.php如果您希望在此之后继续处理消息,也可以使用c标志。
您会注意到,我取出了硬编码路径/usr/bin;对路径进行硬编码使脚本的可移植性降低,并且为了调试目的,不可能(或者至少非常麻烦)用包装器替换php。我建议您确保在生产中正确设置PATH。
https://unix.stackexchange.com/questions/489729
复制相似问题