이 절에서는 변환 채널 옵션을 사용하여 메시지를 바운스, 삭제 또는 보관하는 방법을 설명합니다. 기본 절차는 다음과 같습니다.
해당 변환 파일 항목에서 OVERRIDE-OPTION-FILE=1을 설정합니다. 이 설정은 OUTPUT_OPTIONS 파일에서 출력 옵션을 읽도록 변환 채널에 지시합니다.
변환 스크립트를 사용하여 특정 메시지 본문 부분에 필요한 작업을 결정합니다.
스크립트에서 OUTPUT_OPTIONS 파일에 STATUS=directive_code 옵션을 작성하여 해당 작업에 대한 특수 지시문을 지정합니다.
전체 특수 지시문 목록은 msg-svr-base/include/deprecated/pmdf_err.h를 참조하십시오. 변환 채널에 일반적으로 사용되는 특수 지시문은 다음과 같습니다.
표 13–5 변환 채널에 일반적으로 사용되는 특수 지시문
이름 |
16진수 값 |
10진수 값 |
---|---|---|
PMDF__FORCEHOLD |
0x0A9C86AA |
178030250 |
PMDF__FORCERETURN |
0x0A9C857A |
178029946 |
PMDF__FORCEDELETE |
0x0A9C8662 |
178030178 |
PMDF__FORCEDISCARD |
0x0A9C86B3 |
178030259 |
PMDF__AGN |
0x0A9C809A |
178028698 |
이러한 지시문의 기능의 예는 다음과 같습니다.
변환 채널을 사용하여 메시지를 바운스하려면 해당 conversions 파일 항목에서 OVERRIDE-OPTION-FILE=1을 설정하고 변환 스크립트에 다음 행을 추가합니다.
echo "STATUS=178029946" >> $OUTPUT_OPTIONS
바운스된 메시지에 간단한 텍스트 문자열을 추가하려면 변환 스크립트에 다음 행을 추가합니다.
echo OUTPUT_DIAGNOSTIC=text-string >> $OUTPUT_OPTIONS
여기서 텍스트 문자열은 “The message sent from your machine contained a virus which has been removed. Be careful about executing email attachments.”과 같습니다.
메시지 부분을 포함된 내용에 따라 조건적으로 삭제하는 것이 좋을 수 있습니다. 조건적 삭제는 출력 옵션을 사용하여 수행할 수 있습니다. 반대로 DELETE=1 변환 매개 변수 절은 메시지 부분을 무조건 삭제합니다.
출력 옵션을 사용하여 메시지 부분을 삭제하려면 해당 변환 파일 항목에 OVERRIDE-OPTION-FILE=1을 설정하고 변환 스크립트에 다음 행을 추가합니다.
echo "STATUS=178030178" >> $OUTPUT_OPTIONS
마찬가지로 메시지 전체를 삭제하려면 다음을 사용할 수 있습니다.
echo "STATUS=178030259" >> $OUTPUT_OPTIONS
메시지 부분을 포함된 내용에 따라 조건적으로 보관하는 것이 좋을 수 있습니다. 출력 옵션을 사용하여 메시지 부분을 삭제하려면 해당 변환 파일 항목에 OVERRIDE-OPTION-FILE=1을 설정하고 변환 스크립트에 다음 행을 추가합니다.
echo "STATUS=178030250" >> $OUTPUT_OPTIONS
이 행은 변환 채널이 메시지를 변환 채널 대기열에 .HELD 파일로 보관해야 하도록 요청합니다.
변환기 스크립트에 임시 자원 문제가 발생하면(시스템에서 외부 서버에 연결할 수 없거나, 필요한 파일이 잠겨 있는 등) PMDF_AGN을 사용하여 변환 채널에서 임시 오류가 발생한 메시지의 처리를 고려하게 만들 수 있습니다. MTA는 mail.log_current에 "Q" 상태 메시지를 기록하고 메시지를 변환 채널에 보관한 다음 나중에 다시 처리를 시도합니다.
변환 스크립트에 다음 행을 추가합니다.
echo "STATUS=178028698" >> $OUTPUT_OPTIONS