procmail删除正文

procmail删除正文

我有一个 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在生产中正确设置即可。

相关内容