Sun Java System Messaging Server 6 2005Q4 관리 설명서

imsimta test -exp 출력

imsimta test -exp의 전체 명령은 다음과 같습니다.

# imsimta test -exp -mm -block -input=temp.filter -message=rfc2822.msg

출력 예는 다음과 같습니다.


예 17–4 imsimta test -exp 출력


# imsimta test -exp -mm -block -input tmp.filter -message=rfc2822.msg
Expression: if header :contains ["to"] ["pamw"]       (1)
Expression: {
Expression: redirect "usr3@sesta.com";
Expression: keep;
Expression: }
Expression:
Expression: Dump: header:2000114;0  3  1  :contains  1  "to"  1
"pamw"  if  8  ;
Dump: redirect:2000121;0  1  1  "usr3@sesta.com"  ;  keep:2000117;0 (2)
Dump: 0
Result: 0
Filter result: [ redirect "usr3@sesta.com" keep ]    (3)
            

1) Expression: 출력 행은 tmp.filter 텍스트 파일에서 읽고 구문 분석될 필터를 표시합니다. 이러한 행은 스크립트를 디버깅하는 데 그다지 유용하지 않습니다.

2) Dump: 출력 행은 Sieve 문을 해석하는 컴퓨터의 결과입니다. 오류가 표시되지 않아야 하며 출력이 입력과 일치하는 것으로 보여야 합니다. 예를 들어, 이 덤프에서 필터 파일 redirect "usr3@sesta.com";의 행과 같은 단어 redirect, usr3@sesta.com을 표시해야 합니다.

일치하는 텍스트가 표시되지 않은 경우에는 신경을 써야 합니다. 그렇지 않은 경우에는 스크립트를 디버깅하는 데 그다지 유용하지 않습니다.

3) 출력의 맨 아래에 Filter result: 문이 나타납니다. 앞에서 언급한 것처럼 다음과 같은 두 가지 결과가 가능합니다.

Sieve Result: [] 또는Sieve Result: [ action]

여기서 action은 Sieve 스크립트가 수행하는 작업입니다. 경우에 따라서는 빈 결과를 예상할 수도 있습니다. 예를 들어, discard 필터의 경우에는 테스트하는 모든 .msg 파일을 항상 삭제하지 않는지 테스트해야 합니다. 예를 들어 대괄호 사이에 작업이 있는 경우

Filter result: [ fileinto "QMSG" keep]

rfc2822.msg 파일의 텍스트가 필터 기준과 일치했다는 것을 의미합니다. 이 특수한 예에서 필터는 메일을 QMSG 폴더에 파일로 저장하고 복사본을 받은 메일함에 보관합니다. 이 경우의 결과 작업은 fileintokeep입니다.

필터를 테스트할 때 두 결과 모두에 대해 여러 .msg 파일을 테스트해야 합니다. 필터와 일치하는 메일이 필터링되는지, 일치시키지 않으려는 메일이 필터링되지 않는지 항상 테스트해야 합니다.

와일드카드 일치의 경우에는 :contains가 아니라 :matches 테스트를 사용해야 한다는 것에 주의합니다. 예를 들어, from=*@sesta.com을 일치시키려면 :matches를 사용해야 합니다. 그렇지 않으면 테스트 조건을 전혀 만족하지 않으므로 테스트가 실패합니다.