conversion 채널을 사용하면 MTA를 통과하는 메시지 흐름에서 임의의 본문을 본문 부분 단위로 처리할 수 있습니다. 본문 부분은 메시지와 다릅니다. 예를 들어, 메일은 한 첨부 파일에 여러 본문 부분을 포함할 수 있습니다. 또한, 본문 부분은 MIME 헤더에서 지정하고 설명합니다.이 프로세스는 사이트에서 제공하는 프로그램이나 명령 프로시저에 의해 수행될 수 있으며 텍스트 또는 이미지를 다른 형식으로 변환, 바이러스 스캔, 언어 변환 등과 같은 작업을 수행할 수 있습니다. 변환할 다양한 메일 유형의 MTA 트래픽을 선택한 다음 각 유형의 메일 본문 부분에 대해 특정 프로세스 및 프로그램을 지정할 수 있습니다.
이 장을 학습하려면 채널 개념을 잘 알고 있어야 합니다( 8.5 채널 참조). conversion 채널을 사용한 바이러스 스캔과 관련된 자세한 내용은 Messaging Server 설명서 웹 사이트(http://docs.sun.com/db/coll/S1_MsgTechNotes)의 아래쪽에 있는 현재 버전의 Messaging Server Technical Notes를 참조하십시오.
변환 채널 구현은 A) 처리할 메일 트래픽 선택 및 B) 메일 처리 방법 지정으로 구성됩니다. 이러한 절차에 대해서는 나중에 자세히 설명합니다.
기본 변환 채널은 MTA 구성 파일(imta.cnf)에 자동으로 만들어집니다. 이 채널을 그대로 사용할 수 있으므로 수정할 필요가 없습니다.
이 절은 다음과 같은 하위 절로 구성되어 있습니다.
변환 채널을 사용하면 MIME(Multipurpose Internet Mail Extensions) 헤더 행을 광범위하게 사용할 수 있습니다. 메일 구성 및 MIME 헤더 필드에 대한 지식이 필요합니다. MIME에 대한 자세한 내용은 RFC 1806, 2045 - 2049 및 2183을 참조하십시오. 편의를 위해 여기서는 MIME에 대한 간단한 개요를 제공합니다.
간단한 메일은 헤더와 본문으로 구성됩니다. 헤더는 메일의 맨 위쪽에 있으며 날짜, 제목, 보낸 사람, 수신자 등과 같은 특정 제어 정보가 포함되어 있습니다. 본문은 헤더 뒤의 첫 번째 빈 행 다음의 모든 내용입니다. MIME는 여러 본문 부분 및 본문 부분 내에 중첩된 본문 부분을 포함할 수 있는 보다 복잡한 메시지를 구성하는 방법을 지정합니다. 이러한 메시지를 다중 부분 메시지라고 합니다. 앞에서 설명한 것처럼 변환 채널은 메시지를 본문 부분 단위로 처리합니다.
MIME 규격은 본문 부분에 대한 헤더 행 집합을 정의합니다. 여기에는 MIME-Version, Content-type, Content-Transfer-Encoding, Content-ID 및 Content-disposition이 포함됩니다. 변환 채널은 Content-type 및 Content-disposition 헤더를 가장 많이 사용합니다. 다음은 일부 MIME 헤더 행의 예입니다.
Content-type: APPLICATION/wordperfect5.1;name=Poem.wpc Content-transfer-encoding: BASE64 Content-disposition: attachment; filename=Poem.wpc Content-description: "Project documentation Draft1 wordperfect format" |
MIME 헤더 행은 To:, Subject: 및 From: 등과 같은 일반적인 비 MIME 헤더 행과 다릅니다. 변환 채널의 경우 MIME 헤더 행은 기본적으로 Content-로 시작합니다.
MIME Content-Type 헤더는 본문 부분의 내용을 설명합니다. Content-Type 헤더 형식의 예를 들면 다음과 같습니다.
Content-type: type/ subtype; parameter1=value; parameter2=value...
type은 본문 부분의 내용 유형을 설명합니다. 유형의 예로는 Text, Multipart, Message, Application, Image, Audio, Video 등이 있습니다.
subtype은 내용 유형을 자세히 설명합니다. 각 Content-type에는 자체 하위 유형 집합이 있습니다. 예를 들어,text/plain, application/octet-stream, image/jpeg 등이 있습니다. MIME 메일에 대한 내용 하위 유형은 IANA(Internet Assigned Numbers Authority)에 의해 지정되고 나열됩니다. 목록 복사본은 http://www.iana.org/assignments/media-types에 있습니다.
parameter는 Content-type/subtype 쌍에 한정됩니다. charset 및 name 매개 변수의 예를 들면 다음과 같습니다.
Content-type: text/plain; charset=us-ascii Content-type: application/msword; name=temp.doc |
charset 매개 변수는 텍스트 메일의 문자 세트를 지정합니다. name 매개 변수는 데이터를 파일로 작성할 경우 사용할 파일 이름을 제안합니다.
Content-Type 값, subtypes 및 매개 변수 이름은 대/소문자를 구분합니다.
MIME Content-disposition 헤더는 본문 부분에 대한 표시 정보를 제공합니다. 이 헤더를 첨부 파일에 추가하여 첨부 파일의 본문 부분을 표시할지(inline) 복사할 파일 이름으로 표시할지(attachment) 여부를 지정하는 경우도 있습니다. Content-disposition 헤더의 형식은 다음과 같습니다.
Content-disposition: disposition_type; parameter1=value;parameter2=value...
disposition_type은 일반적으로 inline(본문 부분 표시) 또는 attachment(저장할 파일로 표시)입니다. Attachment에는 일반적으로 저장된 파일에 대한 이름을 제안하는 값이 있는 filename 매개 변수가 있습니다.
Content-disposition 헤더에 대한 자세한 내용은 RFC2183을 참조하십시오.
다른 MTA 채널과 달리 변환 채널은 일반적으로 주소 또는 MTA 다시 쓰기 규칙에 지정되어 있지 않습니다. 대신 CONVERSIONS 매핑 테이블(imta_tailor 파일의 IMTA_MAPPING_FILE 매개 변수에 의해 지정됨)을 사용하여 변환 채널에 메시지를 보냅니다. 테이블 항목의 형식은 다음과 같습니다.
IN-CHAN=source-channel ;OUT-CHAN=destination-channel;CONVERT Yes/No
MTA는 각 메시지를 처리할 때 CONVERSIONS 매핑 테이블(있는 경우)을 검사합니다. source-channel이 메시지를 가져온 채널이고 destination-channel이 메시지를 받을 채널인 경우 CONVERT 앞의 작업이 수행됩니다. Yes일 경우 MTA는 destination-channel에서 가져온 메시지를 변환 채널로 전환합니다. 일치하는 항목이 발견되지 않는 경우 메시지가 일반 대상 채널의 대기열에 포함됩니다.
CONVERSIONS 매핑 테이블에 관계 없이 user@conversion.localhostname 또는 user@conversion 형식의 주소가 변환 채널을 통해 라우팅됩니다.
다음 예에서는 모든 외부 메일(인터넷을 통해 주고 받는 메일)을 변환 채널로 라우팅합니다.
CONVERSIONS IN-CHAN=tcp_local;OUT-CHAN=*;CONVERT Yes IN-CHAN=*;OUT-CHAN=tcp_local;CONVERT Yes
첫 번째 행은 tcp_local 채널에서 가져온 메시지가 처리됨을 지정합니다. 두 번째 행은 tcp_local 채널로 보낸 메일도 처리됨을 지정합니다. tcp_local 채널은 인터넷을 통해 주고 받는 모든 메시지를 처리합니다. 기본값은 변환 채널을 통해 전달하지 않는 것이기 때문에 다른 메시지가 변환 채널을 통해 전달되지 않습니다.
이 테이블은 기본적인 테이블이므로 보다 많이 사용자 정의된 구성(예: 다중 outbound-to-the-Internet tcp_* 채널을 사용하거나 다중 inbound-from-the-Internet tcp_* 채널을 사용하는 사이트)이 있는 사이트에는 충분하지 않을 수 있습니다.
이 절에서는 변환 처리를 제어하는 방법에 대해 설명합니다. 이 절은 다음 내용으로 구성되어 있습니다.
메시지를 변환 채널로 보내면 본문 부분 단위로 처리됩니다. 처리는 imta_tailor 파일의 IMTA_CONVERSION_FILE 옵션에 지정된 MTA conversions 파일(기본값: msg-svr-base/conversions)에 의해 제어됩니다. conversions 파일은 1) 처리할 본문 부분의 유형을 지정하고 2) 처리 방법을 제어하는 항목으로 구성됩니다.
각 항목은 여러 name=value 매개 변수 절을 포함하는 하나 이상의 행으로 구성됩니다. 매개 변수 절의 값은 MIME 규칙을 따릅니다. 마지막 행을 제외한 모든 행은 세미콜론(;)으로 끝나야 합니다. 이 파일의 물리적 행은 252자로 제한됩니다. 백슬래시(\) 연결 문자를 사용하여 논리적 행을 여러 물리적 행으로 분할할 수 있습니다. 세미콜론으로 끝나지 않는 행이나 하나 이상의 빈 행 또는 두 가지 모두를 사용하여 항목을 종료합니다.
다음은 conversion 파일 항목의 간단한 예입니다.
out-chan=ims-ms; in-type=application; in-subtype=wordperfect5.1; out-type=application; out-subtype=msword; out-mode=block; command="/usr/bin/convert -in=wordp -out=msword 'INPUT_FILE' 'OUTPUT_FILE’" |
out-chan=ims-ms; in-type=application; in-subtype=wordperfect5.1 절은 본문 부분을 규정합니다. 즉, 변환할 부분의 유형을 지정합니다. 각 부분의 헤더를 읽고 해당 헤더의 Content-Type:과 기타 헤더 정보를 추출합니다. 그런 다음 conversion 파일의 항목을 처음부터 끝까지 순서대로 검사하여 in-* 매개 변수가 있는지 확인하고, OUT-CHAN 매개 변수(있는 경우)를 검사합니다. 이러한 매개 변수가 모두 처리할 본문 부분의 해당 정보와 일치하면 command= 또는 delete= 절에 지정된 변환이 수행되고 out-* 매개 변수가 설정됩니다.
일치하지 않는 경우 해당 부분이 다음에 있는 conversions 파일 항목에 대해 일치됩니다. 모든 본문 부분을 스캔하여 처리한 다음(규정된 일치가 있다고 가정) 메시지를 다음 채널로 보냅니다. 일치하지 않는 경우 처리 작업을 수행하지 않고 메시지를 다음 채널로 보냅니다.
out-chan=ims-ms는 ims-ms 채널이 대상인 메일 부분만 변환하도록 지정합니다. in-type=application 및 in-subtype=wordperfect5.1은 메일 부분에 대한 MIME Content-type 헤더가 application/wordperfect5.1이 되도록 지정합니다.
추가 in-* 매개 변수를 사용하여 메일 부분을 자세히 규정할 수 있습니다. 표 13–6을 참조하십시오. 위 항목은 다음 MIME 헤더 행이 있는 메일 부분에 대한 변환 작업을 트리거합니다.
Content-type: APPLICATION/wordperfect5.1;name=Draft1.wpc Content-transfer-encoding: BASE64 Content-disposition: attachment; filename=Draft1.wpc Content-description: "Project documentation Draft1 wordperfect format" |
예 13–1에서 세 conversion 파일 규정 매개 변수 뒤의 두 매개 변수 out-type=application 및 out-subtype=msword는 "처리된" 본문 부분에 첨부할 대체 MIME 헤더 행을 지정합니다. out-type=application 및 out-subtype=msword는 보내는 메일의 MIME Content-type/subtype이 application/msword가 되도록 지정합니다.
in-type 매개 변수와 out-type 매개 변수가 동일하고 보내는 본문 부분의 원본 MIME 레이블이 변환 채널의 기본값이기 때문에 out-type=application은 필요하지 않습니다. 추가 출력 매개 변수를 사용하여 보내는 본문 부분에 대한 추가 MIME 레이블을 지정할 수 있습니다.
out-mode=block(예 13–1)은 사이트에서 제공하는 프로그램이 반환할 파일 유형을 지정합니다. 즉, 파일 저장 방법과 반환된 파일에서 변환 채널을 다시 읽는 방법을 지정합니다. 예를 들어, html 파일은 텍스트 모드로 저장되고 .exe 프로그램 또는 zip 파일은 블록/이진 모드로 저장됩니다. 모드는 읽을 파일이 특정 저장소 형식에 속하는지를 설명하는 방법입니다.
예 13–1의 마지막 매개 변수는 본문 부분에 대해 수행할 작업을 다음과 같이 지정합니다.
command="/usr/bin/convert -in=wordp -out=msword 'INPUT_FILE’ 'OUTPUT_FILE’" |
command= 매개 변수는 프로그램이 본문 부분에서 실행됨을 지정합니다. /usr/bin/convert는 가상 명령 이름이고 -in=wordp 및 -out=msword는 입력 텍스트 및 출력 텍스트의 형식을 지정하는 가상 명령줄 인수입니다. INPUT_FILE 및 OUTPUT_FILE은 원래의 본문 부분이 포함된 파일과 프로그램에서 변환된 본문 부분을 저장하는 파일을 지정하는 변환 채널 환경 매개 변수( 13.5.3.2 변환 채널 환경 변수 사용 참조)입니다.
일반 변환 항목에 의해 외부 메일 헤더를 포함하는 파일이 요청되는 경우 봉투 생성자 및 수신자 정보는 x-envelope-from 및 x-envelope-to 필드로 제공됩니다.
본문 부분에서 명령을 실행하지 않고 command 매개 변수를 DELETE=1로 대체하면 메일 부분을 간단하게 삭제할 수 있습니다.
conversions 파일을 수정할 때마다 구성을 다시 컴파일해야 합니다( 10.1 MTA 구성 컴파일 참조).
정보 흐름은 다음과 같습니다. 본문 부분이 포함된 메시지가 변환 채널로 전달됩니다. 변환 채널에서 메시지를 구문 분석하여 한 부분씩 처리합니다. 그런 다음 본문 부분을 규정합니다. 즉, MIME 헤더 행을 규정 매개 변수와 비교하여 메시지를 처리할지 여부를 결정합니다. 본문 부분이 규정되면 변환 처리가 시작됩니다. MIME 또는 본문 부분 정보를 변환 스크립트로 전달해야 할 경우 해당 정보가 정보 전달 매개 변수에 지정된 환경 변수( 13.5.3.2 변환 채널 환경 변수 사용)로 저장됩니다.
이 지점에서 작업 매개 변수에 지정된 작업이 본문 부분에 대해 수행됩니다. 일반적으로 본문 부분을 삭제하거나 스크립트에 포함된 프로그램으로 전달하는 작업입니다. 스크립트는 본문 부분을 처리한 다음 사후 처리 메일로 재어셈블할 수 있도록 변환 채널로 다시 보냅니다. 또한, 변환 채널 출력 옵션을 사용하여 정보를 변환 채널로 보낼 수 있습니다. 이 정보는 출력 본문 부분에 추가할 새 MIME 헤더 행, 메시지를 보낸 사람에게 반환할 오류 텍스트, 작업(메일 바운스, 삭제, 보관 등)을 시작하도록 MTA에 지시하는 특수 지시문 등입니다.
마지막으로 변환 채널은 출력 본문 부분의 헤더 행을 출력 매개 변수에 지정된 대로 바꿉니다.
메일 본문 부분에 대한 작업을 수행할 경우 사이트에서 제공하는 프로그램을 통해 MIME 헤더 행 정보 또는 전체 본문 부분을 전달하는 것이 좋습니다. 예를 들어, 프로그램에는 메일 본문 부분 외에도 Content-type 및 Content-disposition 헤더 행 정보가 필요할 수 있습니다. 일반적으로 사이트에서 제공하는 프로그램의 기본 입력은 파일에서 읽은 메일 본문 부분입니다. 본문 부분을 처리한 후 프로그램은 변환 채널에서 읽을 수 있도록 본문 부분을 파일에 기록해야 합니다. 이러한 유형의 정보 전달은 변환 채널 환경 변수를 사용하여 수행됩니다.
parameter-symbol-* 매개 변수 또는 미리 정의된 채널 환경 변수( 13.5.3.3 변환 채널 출력 옵션 사용 참조)를 사용하여 conversions 파일에 환경 변수를 만들 수 있습니다.
다음 conversions 파일 항목 및 수신 헤더는 환경 변수를 사용하여 MIME 정보를 사이트에서 제공하는 프로그램에 전달하는 방법을 나타냅니다.
conversions 파일 항목:
in-channel=*; in-type=application; in-subtype=*; parameter-symbol-0=NAME; parameter-copy-0=*; dparameter-symbol-0=FILENAME; dparameter-copy-0=*; message-header-file=2; original-header-file=1; override-header-file=1; override-option-file=1; command="/bin/viro-scan500.sh ”INPUT_FILE’ ”OUTPUT_FILE’" |
수신 헤더:
Content-type: APPLICATION/msword; name=Draft1.doc Content-transfer-encoding: BASE64 Content-disposition: attachment; filename=Draft1.doc Content-description: "Project documentation Draft1 msword format" |
in-channel=*; in-type=application; in-subtype=*는 유형이 application인 입력 채널의 메일 본문 부분을 처리하도록 지정합니다.
parameter-symbol-0=NAME은 첫 번째 Content-type 매개 변수 값(이 예의 경우 Draft1.doc)을 NAME이라는 환경 변수에 저장하도록 지정합니다.
parameter-copy-0=*는 입력 본문 부분의 모든 Content-type 매개 변수를 출력 본문 부분에 복사하도록 지정합니다.
dparameter-symbol-0=FILENAME은 첫 번째 Content-disposition 매개 변수 값(이 예의 경우 Draft1.doc)을 FILENAME이라는 환경 변수에 저장하도록 지정합니다.
dparameter-copy-0=*는 입력 본문 부분의 모든 Content-disposition 매개 변수를 출력 본문 부분에 복사하도록 지정합니다.
message-header-file=2는 메일의 원본 헤더(가장 외부에 있는 메일 헤더) 전체를 MESSAGE_HEADERS 환경 변수에 지정된 파일에 기록하도록 지정합니다.
original-header-file=1은 포함된 MESSAGE/RFC822 부분의 원본 헤더를 ORIGINAL_HEADERS 환경 변수에 기록하도록 지정합니다.
override-header-file=1은 포함된 MIME 부분의 원본 MIME 헤더 행을 무시하고 OUTPUT_HEADERS 환경 변수에 지정된 파일에서 MIME 헤더를 읽도록 지정합니다. $OUTPUT_HEADERS는 변환을 실행할 때 즉석에서 만들어지는 임시 파일입니다. 사이트에서 제공하는 프로그램은 이 파일을 사용하여 변환 프로세스 중에 변경된 MIME 헤더 행을 저장합니다. 그런 다음 변환 채널은 본문 부분을 재어셈블할 때 이 파일에서 MIME 헤더 행을 읽습니다. MIME 헤더 행만 수정할 수 있습니다. 다른 일반적인 비 MIME 헤더 행은 변환 채널에서 변경할 수 없습니다.
override-option-file=1은 변환 채널이 OUTPUT_OPTIONS 환경 변수를 통해 명명된 파일에서 변환 채널 옵션을 읽도록 지정합니다. 13.5.3.3 변환 채널 출력 옵션 사용을 참조하십시오.
command="msg-svr-base/bin/viro-scan500.sh"는 메일 본문 부분에서 실행할 명령을 지정합니다.
표 13–3 변환 채널 환경 변수
환경 변수 |
설명 |
---|---|
ATTACHMENT_NUMBER |
현재 부분의 첨부 파일 수입니다. ATTACHMENT-NUMBER 변환 일치 매개 변수와 같은 형식을 사용합니다. |
CONVERSION_TAG |
활성 변환 태그의 현재 목록입니다. TAG 변환 일치 매개 변수에 해당합니다. |
INPUT_CHANNEL |
메시지를 변환 채널의 대기열에 포함시킨 채널입니다. IN-CHANNEL 변환 일치 매개 변수에 해당합니다. |
INPUT_ENCODING |
본문 부분에 원래 표시된 부분을 인코딩합니다. |
INPUT_FILE |
원본 본문 부분이 포함된 파일 이름입니다. 사이트에서 제공하는 프로그램은 이 파일을 읽어야 합니다. |
INPUT_HEADERS |
본문 부분의 원본 헤더 행이 포함된 파일 이름입니다. 사이트에서 제공하는 프로그램은 이 파일을 읽어야 합니다. |
INPUT_TYPE |
입력 메일 부분의 MIME Content-type입니다. |
INPUT_SUBTYPE |
입력 메일 부분의 MIME 내용 하위 유형입니다. |
INPUT_DESCRIPTION |
입력 메일 부분의 MIME content-description입니다. |
INPUT_DISPOSITION |
입력 메일 부분의 MIME content-disposition입니다. |
MESSAGE_HEADERS |
포함된 메일의 가장 외부에 있는 원본 헤더(본문 부분 아님) 또는 최신 포함된 MESSAGE/RFC822 부분의 헤더를 포함하는 파일 이름입니다. 사이트에서 제공하는 프로그램은 이 파일을 읽어야 합니다. |
OUTPUT_CHANNEL |
메시지를 보내는 채널입니다. OUT-CHANNEL 변환 일치 매개 변수에 해당합니다. |
OUTPUT_FILE |
사이트에서 제공하는 프로그램이 출력을 저장하는 파일 이름입니다. 사이트에서 제공하는 프로그램은 이 파일을 만들고 써야 합니다. |
OUTPUT_HEADERS |
사이트에서 제공하는 프로그램이 포함 부분에 대한 MIME 헤더 행을 저장하는 파일의 이름입니다. 사이트에서 제공하는 프로그램은 이 파일을 만들고 써야 합니다. 파일에는 마지막 행으로 빈 행이 오는 실제 MIME 헤더 행(option=value 행 아님)이 포함되어 있어야 합니다. 또한, MIME 헤더 행만 수정할 수 있습니다. 다른 일반적인 비 MIME 헤더 행은 변환 채널에서 변경할 수 없습니다. |
OUTPUT_OPTIONS |
사이트에서 제공하는 프로그램이 변환 채널 옵션을 읽어야 하는 파일의 이름입니다. 13.5.3.3 변환 채널 출력 옵션 사용을 참조하십시오. |
PART_NUMBER |
현재 부분의 부품 번호입니다. PART-NUMBER 변환 일치 매개 변수와 같은 형식을 사용합니다. |
PART_SIZE |
처리할 부분의 크기(바이트)입니다. |
메일 변환 태그는 특정한 받는 사람이나 보낸 사람과 연관된 특수한 태그입니다. 메시지가 전달될 때 변환 채널 프로그램에서 변환 태그를 볼 수 있으며 특수한 처리를 위해 변환 태그를 사용할 수 있습니다. 변환 태그는 LDAP 디렉토리에 저장됩니다.
메일 변환 태그를 다음과 같이 사용할 수 있습니다. 관리자는 메일 변환 태그 값이 harmonica인 선택된 사용자를 설정할 수 있습니다. 그런 다음 관리자는 해당 메일 처리 시에 태그와 harmonica 값을 감지하는 변환 채널을 설정합니다. 해당 태그와 값이 감지되면 프로그램에서 몇 가지 임의의 기능을 수행합니다.
메일 변환 태그는 사용자 또는 도메인 단위로 설정할 수 있습니다. 도메인 수준의 수신자 LDAP 속성은 MailDomainConversionTag(MTA 옵션 LDAP_DOMAIN_ATTR_CONVERSION_TAG를 사용하여 수정할 수 있음)입니다. 사용자 수준의 수신자 LDAP 속성은 MailConversionTag(MTA 옵션 LDAP_CONVERSION_TAG를 사용하여 수정할 수 있음)입니다. 이러한 두 속성은 값이 여러 개일 수 있으며 각 값에 다른 태그를 지정할 수 있습니다. 특정 수신자와 연관된 태그 집합은 누적됩니다. 즉, 도메인 수준에서 설정된 태그가 사용자 수준에서 설정된 태그와 결합됩니다.
보낸 사람 기반의 변환 태그는 MTA 옵션 LDAP_SOURCE_CONVERSION_TAG 및 LDAP_DOMAIN_ATTR_SOURCE_CONVERSION_TAG를 사용하여 설정할 수 있습니다. 이 옵션은 이러한 소스 주소와 연관된 변환 태그에 대해 각각 사용자 및 도메인 수준 LDAP 속성을 지정합니다. 이러한 옵션에는 기본 속성이 없습니다.
시스템 시브(Sieve)에서 addconversiontag와 setconversiontag라는 새로운 두 작업을 사용할 수 있습니다. 둘 다 단일 인수, 즉 문자열이나 변환 태그의 목록을 허용합니다. addconversiontag는 현재 태그 목록에 변환 태그를 추가하며, setconversiontag는 새 태그를 추가하기 전에 기존 목록을 비웁니다. setconversiontag를 사용하여 나머지 모든 변환 태그 설정 기법을 취소할 수 있도록 이러한 작업은 매우 늦게 수행됩니다. 따라서 시브(Sieve) 필터에 변환 태그를 포함시킬 수 있습니다.
시브(Sieve) 봉투 테스트에서는 봉투 필드 지정자 값으로 conversiontag를 허용합니다. 이 테스트에서는 현재의 태그 목록을 한번에 하나씩 검사합니다. :count 수정자가 지정된 경우 활성 변환 태그의 수를 확인할 수 있습니다. 이 봉투 테스트 유형은 시스템 시브(Sieve)로 제한됩니다. 또한 이 테스트에서는 시브(Sieve) 처리 이전에 존재했던 태그 세트만 확인합니다. setconversiontag 및 addconversiontag 작업의 결과는 표시되지 않습니다.
새로운 MTP 옵션인 INCLUDE_CONVERSIONTAG가 추가되어 다양한 매핑 검사에 변환 태그 정보를 포함시키는 것을 선택적으로 활성화할 수 있습니다. 이는 비트 인코딩 값입니다. 아래 표와 같이 비트가 할당됩니다. 항상 현재 태그 집합이 쉼표로 구분된 목록으로 검사에 나타납니다.
위치 |
값 |
매핑 |
---|---|---|
0 |
1 |
CHARSET_CONVERSION - ;CONVERT 앞에 ;TAG= 필드로 추가됩니다. |
1 |
2 |
CONVERSION - ;CONVERT 앞에 ;TAG= 필드로 추가됩니다. |
2 |
4 |
FORWARD - 현재 주소의 바로 앞에 추가됩니다(| delim). |
3 |
8 |
ORIG_SEND_ACCESS - 검사의 끝에 추가됩니다(| delim). |
4 |
16 |
SEND_ACCESS - 검사의 끝에 추가됩니다(| delim). |
5 |
32 |
ORIG_MAIL_ACCESS - 검사의 끝에 추가됩니다(| delim). |
6 |
64 |
MAIL_ACCESS - 검사의 끝에 추가됩니다(| delim). |
변환 채널 출력 옵션(표 13–4)은 변환 스크립트에서 변환 채널로 정보 및 특수 지시문을 전달하는 데 사용되는 동적 변수입니다. 예를 들어, 본문 부분을 처리하는 동안 스크립트가 메시지를 바운스하고 메일에 바이러스가 있다는 오류 텍스트를 반환되는 메일에 추가하도록 요청하는 특수 지시문을 보낼 수 있습니다.
원하는 변환 항목에 OVERRIDE-OPTION-FILE=1을 설정하여 출력 옵션을 시작합니다. 그러면 출력 옵션이 필요에 따라 스크립트에서 설정되고 환경 변수 파일 OUTPUT_OPTIONS에 저장됩니다. 스크립트가 본문 부분 처리를 완료하면 변환 채널이 OUTPUT_OPTIONS 파일에서 옵션을 읽습니다.
OUTPUT_OPTION 변수는 변환 채널이 옵션을 읽는 파일의 이름입니다. 일반적으로 이 파일을 즉석에서 만들어지는 임시 파일로 사용하여 정보를 전달합니다. 아래 예는 출력 옵션을 사용하여 바이러스 메일을 보낸 사람에게 오류 메시지를 반환하는 스크립트입니다.
/usr/local/bin/viro_screen2k $INPUT_FILE # run the virus screener if [ $? -eq 1 ]; then echo "OUTPUT_DIAGNOSTIC=’Virus found and deleted.’" > $OUTPUT_OPTIONS echo "STATUS=178029946" >> $OUTPUT_OPTIONS else cp $INPUT_FILE $OUTPUT_FILE # Message part is OK fi |
이 예에서는 시스템 진단 메시지와 상태 코드를 $OUTPUT_OPTIONS에 정의된 파일에 추가합니다. $OUTPUT_OPTIONS 임시 파일에는 다음과 비슷한 내용이 표시됩니다.
OUTPUT_DIAGNOSTIC="Virus found and deleted." STATUS=178029946 |
OUTPUT_DIAGNOSTIC='Virus found and deleted’ 행은 메시지에 Virus found and deleted 텍스트를 추가하도록 변환 채널에 지시합니다.
178029946은 msg-svr-base/include/deprecated/pmdf_err.h에 있는 각 pmdf_err.h 파일의 PMDF__FORCERETURN 상태입니다. 이 상태 코드는 메시지를 보낸 사람에게 다시 바운스하도록 변환 채널에 지시합니다. 특수 지시문 사용에 대한 자세한 내용은 13.5.4 변환 채널 출력을 사용하여 메시지 바운스, 삭제, 보관 또는 재시도를 참조하십시오
다음은 전체 출력 옵션 목록입니다.
표 13–4 변환 채널 출력 옵션
옵션 |
설명 |
---|---|
OUTPUT_TYPE |
출력 메시지 부분의 MIME 내용 유형입니다. |
OUTPUT_SUBTYPE |
출력 메시지 부분의 MIME 내용 하위 유형입니다. |
OUTPUT_DESCRIPTION |
출력 메시지 부분의 MIME 내용 설명입니다. |
OUTPUT_DIAGNOSTIC |
메시지가 변환 채널에 의해 강제로 바운스될 경우 보낸 사람에게 전달되는 메시지의 일부로 포함되는 텍스트입니다. |
OUTPUT_DISPOSITION |
출력 메시지 부분의 MIME content-disposition입니다. |
OUTPUT_ENCODING |
출력 메시지 부분에 사용할 MIME 내용 전송 encoding입니다. |
OUTPUT_MODE |
변환 채널에서 출력 메시지 부분을 쓸 때 사용하는 MIME Mode 즉, 수신자가 출력 메시지 부분을 읽을 때 사용하는 모드입니다. |
STATUS |
변환기의 종료 상태입니다. 일반적으로 변환 채널에서 일부 작업을 시작하는 특수 지시문입니다. 전체 지시문 목록은 msg_svr_base/include/deprecated/pmdf_err.h를 참조하십시오. |
메시지 부분에서 변환을 수행할 때 변환 채널은 포함된 MESSAGE/RFC822 부분의 헤더에 액세스합니다. 포함된 MESSAGE/RFC822 부분이 없는 경우 메시지 헤더에 액세스합니다. 헤더의 정보는 사이트에서 제공하는 프로그램에 유용할 수 있습니다.
ORIGINAL-HEADER-FILE=1이 있는 항목을 선택하면 포함된 MESSAGE/RFC822 부분의 모든 원본 헤더 행이 ORIGINAL_HEADERS 환경 변수에 표시된 파일에 기록됩니다. OVERRIDE-HEADER-FILE=1인 경우 변환 채널은 ORIGINAL_HEADERS 환경 변수에 표시된 파일의 내용을 읽어 해당 포함 부분의 헤더로 사용합니다.
out-parameter-* 값은 이름이 중복 지정된 매핑 테이블에서 저장 및 검색될 수 있습니다. 이 기능은 첨부 파일이 postscript, msword, text 중 어느 것인지에 관계 없이 att.dat와 같은 일반적인 이름으로 모든 첨부 파일을 보내는 클라이언트가 첨부 파일의 이름을 변경하여 보낼 때 유용합니다. 이 방법은 다른 클라이언트(예: Outlook)가 확장명을 읽어 해당 부분을 열 수 있도록 이 부분의 레이블을 다시 지정하는 일반적인 방법입니다.
매핑 테이블에서 매개 변수 값을 검색하는 구문은 다음과 같습니다.
”mapping-table-name:mapping-input[$Y, $N]’
$Y는 매개 변수 값을 반환합니다. 일치하는 내용이 없거나 $N이 반환될 경우 변환 파일 항목의 해당 매개 변수가 무시되거나 빈 문자열로 처리됩니다. 일치 항목이 부족하거나 $N이 반환될 경우에는 변환 항목이 중지되지 않습니다.
다음 매핑 테이블을 참조하십시오.
X-ATT-NAMES postscript temp.PS$Y wordperfect5.1 temp.WPC$Y msword temp.DOC$Y |
위 매핑 테이블에서 첨부 파일에 있는 특정 파일 이름을 일반 파일 이름으로 대체하면 변환 항목이 다음과 같이 표시됩니다.
out-chan=tcp_local; in-type=application; in-subtype=*; in-parameter-name-0=name; in-parameter-value-0=*; out-type=application; out-subtype=’INPUT-SUBTYPE’; out-parameter-name-0=name; out-parameter-value-0=”’X-ATT-NAMES:\\’INPUT_SUBTYPE\\''"; command="cp ”INPUT_FILE’ ”OUTPUT_FILE’"
위의 예에서 out-chan=tcp_local; in-type=application; in-subtype=*는 application/*(*는 하위 유형의 수행 작업을 지정함)의 content-type 헤더를 사용하여 tcp_local 채널에서 처리할 메시지를 가져오도록 지정합니다.
in-parameter-name-0=name; in-parameter-value-0=*는 메시지에 name=* 매개 변수 유형(*는 매개 변수 값의 수행 작업을 지정함)이 있어야 함을 지정합니다)
out-type=application;은 사후 처리 메시지의 MIME Content-type 매개 변수가 application임을 지정합니다.
out-subtype=’INPUT-SUBTYPE’;은 사후 처리 본문 부분의 MIME MIME subtype 매개 변수가 입력 subtype의 원본 값인 INPUT-SUBTYPE 환경 변수가 되도록 지정합니다. 따라서
Content-type: application/xxxx; name=foo.doc
위 항목을 아래와 같이 변경하려면
Content-type: application/msword; name=foo.doc
다음을 사용합니다.
out-type=application; out-subtype=msword
out-parameter-name-0=name;은 출력 본문 부분의 첫 번째 MIME Content-type 매개 변수가 name= 유형임을 지정합니다.
out-parameter-value-0=’X-ATT-NAMES:\\’INPUT_SUBTYPE\\’’;은 첫 번째 MIME subtype 매개 변수 값을 사용하여 X-ATT-NAMES 매핑 테이블에서 subtype 일치 항목을 검색하도록 지시합니다. 일치 항목이 발견되면 name 매개 변수는 X-ATT-NAMES 매핑 테이블에 지정된 새 값을 받습니다. 따라서, 매개 변수가 msword 유형인 경우 name 매개 변수는 temp.DOC가 됩니다.
이 절에서는 변환 채널 옵션을 사용하여 메시지를 바운스, 삭제 또는 보관하는 방법을 설명합니다. 기본 절차는 다음과 같습니다.
해당 변환 파일 항목에서 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
아래 예에 표시된 CONVERSIONS 매핑 및 변환 규칙 세트는 tcp_docuprint 가상 채널로 보낸 GIF, JPEG 및 BITMAP 파일을 PostScript로 자동으로 변환하게 합니다. 이러한 여러 변환에서는 가상 /usr/bin/ps-converter.sh를 사용하여 해당 변환을 수행합니다. WordPerfect 5.1 파일을 Microsoft Word 파일로 변환하는 추가 규칙이 포함되어 있습니다.
CONVERSIONS IN-CHAN=*;OUT-CHAN=tcp_docuprint;CONVERT Yes |
out-chan=ims-ms; in-type=application; in-subtype=wordperfect5.1; out-type=application; out-subtype=msword; out-mode=block; command="/bin/doc-convert -in=wp -out=msw ’INPUT_FILE’ ’OUTPUT_FILE’" out-chan=tcp_docuprint; in-type=image; in-subtype=gif; out-type=application; out-subtype=postscript; out-mode=text; command="/bin/ps-convert -in=gif -out=ps ’INPUT_FILE’ ’OUTPUT_FILE’" out-chan=tcp_docuprint; in-type=image; in-subtype=jpeg; out-type=application; out-subtype=postscript; out-mode=text; command="/bin/ps-convert -in=jpeg -out=ps ’INPUT_FILE’ ’OUTPUT_FILE’" out-chan=tcp_docuprint; in-type=image; in-subtype=bitmap; out-type=application; out-subtype=postscript; out-mode=text; command="/bin/ps-convert -in=bmp -out=ps ’INPUT_FILE’ ’OUTPUT_FILE’" |
변환 매개 변수는 다음과 같습니다.
표 13–6 변환 매개 변수
매개 변수 |
설명 |
---|---|
매개 변수 규정(변환하기 전에 메시지가 일치해야 하는 매개 변수 지정) |
|
OUT-CHAN,OUT-CHANNEL |
변환을 위해 일치시킬 출력 채널(와일드카드 허용)입니다. 메시지가 해당 채널의 대상으로 지정된 경우에만 이 항목에 지정된 변환이 수행됩니다. |
IN-CHAN,IN-CHANNEL |
변환을 위해 일치시킬 입력 채널(와일드카드 허용)입니다. 지정된 채널에서 메시지가 전달된 경우에만 이 항목에 지정된 변환이 수행됩니다. |
IN-TYPE |
변환을 위해 일치시킬 입력 MIME 유형(와일드카드 허용)입니다. 이 필드가 본문 부분의 MIME 유형과 일치하는 경우에만 지정된 변환이 수행됩니다. |
IN-SUBTYPE |
변환을 위해 일치시킬 입력 MIME 하위 유형(와일드카드 허용)입니다. 이 필드가 본문 부분의 MIME 하위 유형과 일치하는 경우에만 이 항목에 지정된 변환이 수행됩니다. |
IN-PARAMETER-NAME-n |
변환을 위해 일치해야 하는 입력 MIME Content-Type 매개 변수 이름입니다(n = 0, 1, 2...). 이 매개 변수를 IN-PARAMETER-VALUE-n과 함께 사용하여 이름 및 보유한 값을 기준으로 매개 변수를 명확하게 식별할 수 있습니다. |
IN-PARAMETER-VALUE-n |
변환을 위해 일치해야 하는 해당 IN-PARAMETER-NAME의 입력 MIME Content-Type 매개 변수 값입니다. 이 필드가 본문 부분의 Content-Type 매개 변수 목록에 있는 해당 매개 변수와 일치하는 경우에만 이 항목에 지정된 변환이 수행됩니다. 와일드카드가 허용됩니다. |
IN-PARAMETER-DEFAULT-n |
매개 변수가 없는 경우 입력 MIME Content-Type 매개 변수의 기본값입니다. 이 값은 해당 매개 변수가 본문 부분에 지정되어 있지 않은 경우 IN-PARAMETER-VALUE-n 테스트를 위한 기본값으로 사용됩니다. |
IN-DISPOSITION |
변환을 위해 일치시킬 입력 MIME Content-Disposition입니다. |
IN-DPARAMETER-NAME-n |
변환을 위해 일치해야 하는 입력 MIME Content-Disposition 매개 변수 이름입니다(n = 0, 1, 2...). 이 매개 변수를 IN-DPARAMETER-VALUE-n과 함께 사용하여 이름 및 보유한 값을 기준으로 매개 변수를 명확하게 식별할 수 있습니다. |
IN-DPARAMETER-VALUE-n |
변환을 위해 일치해야 하는 해당 IN-DPARAMETER-NAME의 입력 MIME Content-Disposition 매개 변수 값입니다. 이 필드가 본문 부분의 Content-Disposition: 매개 변수 목록에 있는 해당 매개 변수와 일치하는 경우에만 이 항목에 지정된 변환이 수행됩니다. 와일드카드가 허용됩니다. |
IN-DPARAMETER-DEFAULT-n |
매개 변수가 없는 경우의 입력 MIME Content-Disposition 매개 변수의 기본값입니다. 이 값은 해당 매개 변수가 본문 부분에 지정되어 있지 않은 경우 IN-DPARAMETER-VALUE-n 테스트를 위한 기본값으로 사용됩니다. |
IN-DESCRIPTION |
변환을 위해 일치시킬 입력 MIME Content-Description입니다. |
IN-SUBJECT |
포함 MESSAGE/RFC822 부분에서 가져온 입력 Subject입니다. |
TAG |
메일 목록 CONVERSION_TAG 매개 변수에 의해 설정되는 입력 태그입니다. |
출력 매개 변수(본문 부분의 변환 후 출력 설정 지정) |
|
OUT-TYPE |
입력 유형과 다를 경우의 출력 MIME 유형입니다. |
OUT-SUBTYPE |
입력 하위 유형과 다를 경우의 출력 MIME 하위 유형입니다. |
OUT-PARAMETER-NAME-n |
출력 MIME Content-Type 매개 변수 이름입니다(n = 0, 1, 2...). |
OUT-PARAMETER-VALUE-n |
OUT-PARAMETER-NAME-n에 해당하는 출력 MIME Content-Type 매개 변수 값입니다. |
PARAMETER-COPY-n |
입력 본문 부분의 Content-Type 매개 변수 목록에서 출력 본문 부분의 Content-Type: 매개 변수 목록에 복사할 Content-Type 매개 변수 목록입니다(n=0, 1, 2...). IN-PARAMETER-NAME-n 절과 일치할 경우 동일한 MIME 매개 변수 이름을 사용하여 복사합니다. |
OUT-DISPOSITION |
입력 MIME Content-Disposition과 다를 경우의 출력 MIME Content-Disposition입니다. |
OUT-DPARAMETER-NAME-n |
출력 MIME Content-Disposition 매개 변수 이름입니다( n=0, 1, 2...). |
OUT-DPARAMETER-VALUE-n |
OUT-DPARAMETER-NAME-n에 해당하는 출력 MIME Content-Disposition 매개 변수 값입니다. |
DPARAMETER-COPY-n |
입력 본문 부분의 Content-Disposition: 매개 변수 목록에서 출력 본문 부분의 Content-Disposition: 매개 변수 목록에 복사할 Content-Disposition: 매개 변수 목록입니다(n = 0, 1, 2,...). IN-PARAMETER-NAME-n 절과 일치할 경우 MIME 매개 변수 이름을 인수로 사용하여 복사합니다. 와일드카드를 인수로 사용할 수 있습니다. 특히 * 인수는 모든 원본 Content-Disposition: 매개 변수를 복사함을 의미합니다. |
OUT-DESCRIPTION |
입력 MIME Content-Description과 다를 경우의 출력 MIME Content-Description입니다. |
OUT-MODE |
변환된 파일을 읽고 저장하는 데 사용하는 모드입니다. BLOCK(이진 및 실행 파일) 또는 TEXT여야 합니다. |
OUT-ENCODING |
메시지를 재어셈블할 때 변환된 파일에 적용할 인코딩입니다. |
작업 매개 변수(메시지 부분에서 수행할 작업 지정) |
|
COMMAND |
변환을 수행하기 위해 실행할 명령입니다. 변환을 수행하기 위해 실행할 명령입니다. 이 매개 변수는 필수입니다. 명령을 지정하지 않으면 항목이 무시됩니다. \ 대신 /를 사용하여 경로를 지정합니다(예: command="D:/tmp/mybat.bat"). |
DELETE |
0 또는 1입니다. 이 플래그를 설정하면 메시지 부분이 삭제됩니다. 이 부분이 메시지의 유일한 부분인 경우 빈 단일 텍스트 부분이 대체됩니다. |
RELABEL |
RELABEL=1인 경우 MIME 레이블을 출력 매개 변수에 지정된 레이블로 다시 지정합니다. Relabel=0인 경우에는 레이블을 다시 지정하지 않습니다. 일반적으로 레이블 다시 지정은 레이블이 잘못 지정된 부분에서 수행됩니다. 예를 들어,Content-type: application/octet-stream에서 Content-type: application/msword로 레이블을 다시 지정합니다. 그렇게 하면 해당 부분을 파일로 저장하여 프로그램에서 열 필요 없이 해당 부분을 "두 번 눌러" 열 수 있습니다. |
SERVICE-COMMAND |
SERVICE-COMMAND=command는 전체 MIME 메시지(MIME 헤더 및 내용 본문 부분)에 적용할 사이트에서 제공하는 절차를 실행합니다. 다른 CHARSET-CONVERSION 작업 또는 변환 채널 작업과 달리 service-command는 MIME 역어셈블리, 디코딩, 재인코딩 및 재어셈블리를 자체적으로 수행합니다. 이 플래그는 변환 채널을 처리하는 동안 항목이 무시되게 합니다. SERVICE-COMMAND 항목은 문자 세트 변환 처리 중에 대신 수행됩니다. \ 대신 /를 사용하여 경로를 지정합니다(예: command="D:/tmp/mybat.bat"). |
정보 전달 매개 변수(사이트에서 제공하는 프로그램을 통해 정보를 전달하는 데 사용됨) |
|
DPARAMETER-SYMBOL-n |
Content-disposition 매개 변수 값(있는 경우)이 저장되는 환경 변수입니다(n = 0, 1, 2,...). 각 DPARAMETER-SYMBOL-n은 Content-Disposition: 매개 변수 목록에서 순서대로(n=0이 첫 번째 매개 변수, n=2가 두 번째 매개 변수 등) 추출되어 사이트에서 제공하는 프로그램을 실행하기 전에 지정된 환경 변수에 저장됩니다. |
PARAMETER-SYMBOL-n |
Content-disposition 매개 변수 값(있는 경우)이 저장되는 환경 변수입니다(n = 0, 1, 2...). 각 PARAMETER-SYMBOL-n은 Content-Type: 매개 변수 목록에서 순서대로(n=0이 첫 번째 매개 변수, n=2가 두 번째 매개 변수 등) 추출되어 사이트에서 제공하는 프로그램을 실행하기 전에 동일한 이름의 환경 변수에 저장됩니다. IN-PARAMETER-NAME-n 절과 일치할 경우 MIME 매개 변수를 변환할 변수 이름을 인수로 사용합니다. |
MESSAGE-HEADER-FILE |
메시지 원본 헤더의 모두 또는 일부를 MESSAGE_HEADERS 환경 변수에서 지정한 파일에 쓰거나 전혀 쓰지 않습니다. 이 값을 1로 설정하면 포함된 본문 부분의 원본 헤더를 MESSAGE_HEADERS 환경 변수에서 지정한 파일에 씁니다. 이 값을 2로 설정하면 메시지 원본 헤더(가장 바깥에 있는 메시지 헤더) 전체를 해당 파일에 씁니다. |
ORIGINAL-HEADER-FILE |
0 또는 1입니다. 이 값을 1로 설정하면 포함된 MESSAGE/RFC822 부분(본문 부분이 아님)의 원본 헤더를 ORIGINAL_HEADERS 환경 변수에 표시된 파일에 씁니다. |
OVERRIDE-HEADER-FILE |
0 또는 1입니다. 이 값을 1로 설정하는 경우 변환 채널은 포함된 MIME 부분의 원본 헤더 행을 무시하고 OUTPUT_HEADERS 환경 변수에서 MIME 헤더 행을 읽습니다. |
OVERRIDE-OPTION-FILE |
OVERRIDE-OPTION-FILE=1인 경우 변환 채널은 OUTPUT_OPTIONS 환경 변수에서 옵션을 읽습니다. |
PART-NUMBER |
점으로 구분된 정수(a. b. c...)입니다. MIME 본문 부분의 부품 번호입니다. |
아랍어 문자 세트를 자동으로 감지하기 위한 새로운 auto_ef 프로그램이 추가되었습니다.
변환 채널에서 auto_ef 프로그램을 호출하여 레이블링되지 않았거나 잘못 레이블링된 아랍어 문자 세트의 텍스트 메시지를 대부분 자동으로 감지하고 레이블링할 수 있습니다. 이러한 레이블링되지 않았거나 잘못 레이블링된 메시지는 일반적으로 Yahoo나 Hotmail에서 아랍어로 보낸 메시지입니다.
문자 세트 레이블링을 제대로 하지 못하면 많은 메일 클라이언트에서 메시지를 올바로 표시하지 못합니다.
메시지에 MIME 내용 유형 헤더가 있으면 auto_ef 프로그램은 텍스트/일반 내용 유형의 헤더만 검사하고 처리합니다. 메시지가 MIME 내용 유형 헤더로 레이블링되어 있지 않은 경우에는 auto_ef는 텍스트/일반 내용 유형을 무조건 추가합니다.
이 프로그램을 활성화하거나 사용 가능하도록 설정하려면 다음을 수행해야 합니다.
msg_svr_base/config 디렉토리에 있는 매핑 파일을 편집하여 선택에 따라 소스 및 대상 채널에 대해 변환 채널을 활성화합니다. 인터넷에서 로컬 사용자에게 오는 모든 메시지에 대해 변환 채널을 활성화하려면 매핑 파일에 다음과 유사한 섹션을 추가합니다.
CONVERSIONS IN-CHAN=tcp*;OUT-CHAN=ims-ms;CONVERT YES
IN 및 OUT 채널은 구성에 따라 다릅니다. 릴레이 MTA에 배포하려면 해당 구성에 맞게 채널을 수정해야 합니다. 예를 들면 다음과 같습니다.
IN-CHAN=tcp*;OUT-CHAN=tcp*;CONVERT YES
또는 다음과 같이 모든 채널에 대해 설정할 수 있습니다.
IN-CHAN=*;OUT-CHAN=*;CONVERT YES
Messaging Server 사용자가 소유하고 읽을 수 있는 msg_svr_base/config 디렉토리에 다음 내용을 포함하는 변환 파일을 만듭니다.
! in-channel=*; out-channel=*; in-type=text; in-subtype=*; parameter-copy-0=*; dparameter-copy-0=*; original-header-file=1; override-header-file=1; command="msg-svr-base /lib/arabicdetect.sh" !
다음 명령으로 MTA 구성을 컴파일합니다.
msg-svr-base/sbin/imsimta cnbuild
다음 명령을 사용하여 다시 시작합니다.
msg-svr-base /sbin/imsimta restart