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`)(삼)메시지를 캡처된 주소로 전달합니다( !이 작업이 수행되는 작업입니다).

귀하의 의도가 단지 본문을 스크립트에 전달하는 것이라면,

:0b
* ^Subject.*Telemetry rotate$
| php -f /path/to/script/script.php

c이후에도 메시지 처리를 계속하려면 플래그를 사용할 수도 있습니다.

경로를 하드 /usr/bin코딩하면 스크립트의 이식성이 떨어지고 php디버깅 목적으로 래퍼로 교체하는 것이 불가능해집니다(또는 최소한 극도로 번거로워집니다). PATH프로덕션 환경에서 올바르게 설정했는지 확인하는 것이 좋습니다 .

관련 정보