Procmail: "ticket@domain"이라는 주소로 티켓 번호를 보내시겠습니까?

Procmail: "ticket@domain"이라는 주소로 티켓 번호를 보내시겠습니까?

나는 다음을 수행하고 싶습니다 :

  1. 사용자가 다음 주소로 이메일을 보냅니다.1234@domain
  2. 1234@domain다음 주소로 보낸 이메일로 인식된 Procmailticket+1234@domain
  3. Procmail 레시피는 티켓 번호를 처리하고 이메일을 버그 추적기로 전달합니다.

어디용감한나의 현재 장애물이다.

이것은 개념 증명입니다. 이 시점에서 ticket+1234@domain이메일이 올바르게 전달되도록 하려면 사용자는 티켓을 에 보내야 합니다 .

SUBJECT=`/usr/bin/formail -zx "Subject:"`
:0fhw
* To.*\/([0-9]+)@domain
* MATCH ?? ^\/[0-9]+
|/usr/bin/formail -I "Subject: $SUBJECT (Case $MATCH)"

:0
!tickets@bugtracker

일부 배경:

티켓 처리를 위해 주소가 생성됩니다 ticket@domain,. 현재 사용자는 으로 전송되며 ticket+####@domainProcmail 레시피는 $MATCH버그 추적기 항목과 관련된 티켓 번호를 가져와 그에 따라 전달하는 데 사용됩니다. 이것은 작동합니다.

내가 하고 싶은 것:

자동 완성 오류를 방지합니다(사용자가 ticket+수신자 필드에 입력하면 잘못된 티켓 번호가 자동 완성됩니다). 이러한 오류를 방지하려면 사용자는 다음 주소로 이메일을 보내야 합니다.####@domain 대신에ticket+####@domain.

중요한 질문:

Procmail을 사용하여 에서 보낸 이메일을 필터링하고 ####@domain에서 보낸 이메일로 처리할 수 있습니까 ticket+####@domain?.

답변1

귀하의 질문은 다소 혼란스러워 보이지만 마지막 줄을 !ticket+$MATCH@domain.

.^TO_^To:.*

:0
* ^TO_\/[0-9]+@domain
* MATCH ?? ^\/[0-9]+
{
 SUBJECT=`/usr/bin/formail -zx "Subject:"`
 :0fhw
 |/usr/bin/formail -I "Subject: $SUBJECT (Case $MATCH)"
 :0
 !ticket+$MATCH@domain
}

작업과 두 작업을 조건에 넣기 위해 중괄호를 추가하여 설정되지 않은 Subject:항목을 가져오거나 전달하는 불필요한 작업을 수행하지 않도록 했습니다.MATCH

(주변 괄호는 [0-9]+유용한 기능을 하지 않으므로 제외했습니다. PATH하드코딩된 경로가 아닌 올바른 경로가 있는지 확인하세요 formail.)

수신자 정보에 대한 헤더 구문 분석은 다음과 같은 이유로 완전히 신뢰할 수 없습니다.이 메시지는 다음과 같이 보낼 수 있습니다.Bcc:. 다시 말하지만 이는 수신자 시스템이 헤더가 아닌 수신자 정보에 대한 봉투를 올바르게 확인한다고 가정합니다(물론 전달하기 전에 수신자 헤더를 바꾸는 것도 추가하기 어렵지 않습니다).

관련 정보