我有一个 procmail 配方,它将邮件正文发送到脚本。效果很好,但 procmail 然后将没有正文的邮件发送到我的默认文件夹。
:0
* ^Subject.*Telemetry rotate$
{
:0 bf
! `/usr/bin/php -f /path/to/script/script.php`
}
如何让 procmail 将正文发送到我的脚本而不删除它,或者将副本发送到文件夹,然后删除原始文件。
答案1
你这里有一些错误。该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
在生产中正确设置即可。