procmail을 사용하여 이메일 본문을 수정한 다음 외부 주소로 전달하려면 어떻게 해야 합니까?

procmail을 사용하여 이메일 본문을 수정한 다음 외부 주소로 전달하려면 어떻게 해야 합니까?

먼저 procmail을 사용하여 변환한 다음 수신 이메일을 전달하려고 합니다. 이것이 내가 하고 싶은 일이다:

:0 f
| ~/bin/encryptemail.pl | mail [email protected]

즉, 달리고 싶다암호화된 메일.pl내가 받은 이메일 본문에 스크립트를 작성한 후 암호화된 이메일을 다음 주소로 전달하세요.[이메일 보호됨].

전달된 이메일이 두 번째 헤더 세트에 포함된다는 점을 제외하면 출력을 메일로 파이프하는 것이 작동합니다.

원본 이메일의 본문이 암호화된 내용으로 대체되도록 암호화된 이메일을 깔끔하게 전달하고 싶습니다.

답변1

한번 살펴보고 싶어요레시피존재하다Procmail 문서화 프로젝트웹사이트, 특히 이 레시피는 다음과 같습니다.15.7 암호화된 형식으로 중요한 메시지 전달.

  #   by [alan]
  #   See if addressed *directly* to me, and ..
  #   ..has not already been forwarded

  KEY             = "TheMagic"
  FORWARD_EMAIL   = "[email protected]"

  :0
  *$   ^To:.*$LOGNAME(@|[^0-9a-z]|$)
  *$ ! ^$MYXLOOP
  {
      # now let's encrypt the body using mimencode

      :0 fbw
      |   echo "MIME-Version: 1.0" ;                              \
          echo "Content-Type: application/crypt" ;                \
          echo "Content-transfer-encoding: base64" ;              \
          echo "" ;                                               \
          crypt $KEY | mimencode -b

      #   Now let's prepare the headers for forwarding the mail,
      #   and mark it so we don't loop

      :0 fhw
      | $FORMAIL   -I"Resent-To: $FORWARD_EMAIL" -I"$MYXLOOP"

      :0
      ! $FORWARD_EMAIL

  }    

이 라인을 호출하는 대신:

crypt $KEY | mimencode -b

그 자리에서 호출을 대체할 수 있어야 합니다.

~/bin/encryptemail.pl | mimencode -b

답변2

헤더를 승인하고 전달(즉, 간단히 복사)하도록 스크립트를 변경할 수 있는 경우 다음과 같이 할 수 있습니다.

:0
| ~/bin/encryptemail.pl | sendmail -oi [email protected]

이번에도 본문을 먼저 바꾼 다음 수정된 메시지 전체를 보냅니다.

:0fb
| ~/bin/encryptemail.pl
:0
! [email protected]

f플래그는 배달 레시피에서 의미 있게 사용될 수 없습니다. 이는 b메시지(또는 플래그, 메시지 본문)를 파이프로 연결한 명령의 출력으로 바꾸고 수정된 메시지를 계속 처리하도록 Procmail에 지시합니다.

관련 정보