Sun Java System Messaging Server 6.3 관리 설명서

Procedure사용자 수준 필터 디버그

  1. fileinto 필터링이 작동하려면 imta.cnf 파일에서 ims-ms 채널이 다음과 같이 표시되어 있어야 합니다.

    fileinto $U+$S@$D

  2. 사용자의 LDAP 항목에서 사용자 수준 필터를 가져옵니다.

    사용자 수준 필터는 MailSieveRuleSource 속성 아래의 LDAP 항목에 저장됩니다. ldapsearch 명령을 사용하여 검색하려는 경우 이러한 필터가 base64 인코딩되어 있으므로 -Bo 스위치를 사용하여 출력을 디코딩해야 합니다.


    ./ldapsearch -D "cn=directory manager" -w password -b 
    "o=alcatraz.sesta.com,o=isp" -Bo uid=test

    또한 아래 설명된 imsimta test -rewrite 명령을 사용하면 디코딩이 자동으로 수행됩니다.

  3. 사용자 필터가 MTA에 표시되는지 확인합니다.

    다음 명령을 실행합니다.

    # imsimta test -rewrite -filter -debug user@sesta.com

    이렇게 하면 앞 단계에서 검색한 사용자의 시브(Sieve) 필터가 출력되어야 합니다. 필터가 표시되지 않으면 LDAP 항목이 필터를 반환하지 않는 이유를 찾아야 합니다. imsimta test -rewrite 출력에 필터가 표시되면 MTA가 사용자의 필터를 인식하는 것입니다. 다음 단계에서는 imsimta test -expression 명령을 사용하여 필터 해석을 테스트합니다.

  4. imsimta test -exp를 사용하여 사용자 필터를 디버깅합니다. 다음 정보가 필요합니다.

    1. mailSieveRuleSource 속성에 있는 사용자의 시브(Sieve) 언어 문. 위 단계를 참조하십시오.

    2. 필터를 트리거한 것으로 여겨지는 rfc2822 메시지

    3. 필터가 메시지에 대해 수행할 것으로 예상되는 작업에 대한 설명

  5. 사용자의 mailSieveRuleSource: values를 기반으로 시브(Sieve) 언어 문을 포함하는 텍스트 파일(예: temp.filter)을 만듭니다. 예:

    require "fileinto";
    if anyof(header :contains
    ["To","Cc","Bcc","Resent-to","Resent-cc", 
       "Resent-bcc"] "commsqa"){ 
       fileinto "QMSG";
    }

    예상 결과: commsqa가 이 메시지의 수신자일 경우 메시지를 QMSG라는 폴더에 정리합니다.

  6. 사용자가 제공한 rfc2822 메시지 파일의 내용을 포함하는 test.msg라는 텍스트 파일을 만듭니다.

    사용자 메시지 저장소 영역의 .msg 파일을 사용하거나 사용자가 제공한 rfc2822 메시지 파일의 내용을 포함하는 test_rfc2822.msg라는 텍스트 파일을 만들 수 있습니다.

  7. imsimta test -exp 명령을 사용합니다.


    # imsimta test -exp -mm -block -input=temp.filter -message=test_rfc2822.msg
    
  8. 출력을 검사합니다.

    imsimta test -exp 명령의 마지막 줄은 시브(Sieve) 해석의 결과를 표시합니다. 이 결과는 다음과 같습니다.


    Sieve Result: [] 
    or this: 
    Sieve Result: [action]
    

    여기서 action은 이 메시지에서 시브(Sieve) 필터를 적용한 결과로 수행되는 작업입니다.

    필터 기준이 일치하면 몇 가지 작업이 결과로 표시됩니다. 필터 기준이 일치하지 않으면 빈 시브(Sieve) 결과가 표시되며 시브(Sieve) 필터에 논리적 오류가 있거나 .msg 파일에 일치하는 정보가 포함되지 않은 것입니다. 다른 오류가 발생할 경우에는 시브(Sieve) 스크립트에 구문 오류가 있는 것이므로 이를 디버깅해야 합니다.

    출력에 대한 자세한 내용은 18.15.1 imsimta test -exp 출력을 참조하십시오.

  9. 필터 구문이 유효하고 결과가 올바를 경우 다음 단계는 tcp_local_slave.log 디버그 로그 파일을 검사하는 것입니다.

    테스트하는 메시지 파일과 전송되는 메시지 파일이 다를 수 있습니다. 무엇이 수신되는지 확인하는 방법은 tcp_local_slave.log 파일을 검사하는 것뿐입니다. 이 로그에는 MTA로 보내는 메시지와 이 메시지에 필터를 적용하는 방법이 표시되어 있습니다.

    tcp_local_slave.log 디버그 파일을 가져오는 방법은 12.11.2 디버깅 키워드slave_debug 키워드를 참조하십시오.