메시지 본문을 스크립트로 보내는 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`
)(삼)메시지를 캡처된 주소로 전달합니다( !
이 작업이 수행되는 작업입니다).
귀하의 의도가 단지 본문을 스크립트에 전달하는 것이라면,
:0b
* ^Subject.*Telemetry rotate$
| php -f /path/to/script/script.php
c
이후에도 메시지 처리를 계속하려면 플래그를 사용할 수도 있습니다.
경로를 하드 /usr/bin
코딩하면 스크립트의 이식성이 떨어지고 php
디버깅 목적으로 래퍼로 교체하는 것이 불가능해집니다(또는 최소한 극도로 번거로워집니다). PATH
프로덕션 환경에서 올바르게 설정했는지 확인하는 것이 좋습니다 .