이 장에서는 MTA 구성 파일 imta.cnf에서 채널 키워드 정의를 사용하는 방법에 대해 설명합니다. 이 장을 읽기 전에 10 장, MTA 서비스 및 구성 정보, 채널 정의 및 MTA 구성 파일을 읽어 보십시오. 이 장은 다음 내용으로 구성되어 있습니다.
imta.cnf에서 채널 정의를 변경하는 경우 imsimta restart 명령을 사용하여 시작할 때 한 번만 구성 데이터를 로드하는 프로그램 또는 채널(예: SMTP 서버)을 다시 시작해야 합니다. 컴파일된 구성을 사용하는 경우 재컴파일을 수행한 다음 다시 시작해야 합니다. 구성 정보 컴파일과 프로그램 시작에 대한 자세한 내용은 Sun Java System Messaging Server 6 2005Q4 Administration Reference를 참조하십시오.
많은 구성은 모든 채널 또는 거의 모든 채널에서 다양한 채널 키워드 반복을 포함합니다. 그러한 구성의 유지 관리는 귀찮고 오류가 발생하기 쉽습니다. 일부 구성을 단순화하기 위해 다양한 채널의 기본값으로 사용할 키워드를 지정할 수 있습니다.
예를 들어, 구성 파일의 다음 행은 해당 행 다음에 있는 모든 채널 블록이 해당 행에 지정된 키워드를 상속함을 나타냅니다.
defaults keyword1 keyword2 keyword3 ...
defaults 행은 실제로 채널을 지정하지 않은 채 키워드 기본값을 변경하는 특수 채널 블록으로 간주할 수 있습니다. 또한, defaults 행에는 추가 채널 블록 정보 행이 필요하지 않습니다(무시하도록 지정된 경우).
지정 가능한 defaults 행 수에 대한 제한이 없습니다. 즉, 여러 기본값 행의 효과가 최근에 발생한 앞 행(위에서 아래로 읽음)에 누적됩니다.
구성 파일의 특정 지점(예: 외부 파일에 있는 채널 블록의 독립형 섹션의 시작 부분)에서 시작하여 defaults 행의 효과를 무조건적으로 제거하는 것이 좋을 수도 있습니다. nodefaults 행이 이러한 목적으로 제공됩니다. 예를 들어, 구성 파일에 다음 행을 삽입하면 이전의 기본값 채널에서 지정된 모든 설정이 무효화되고 구성이 기본값을 지정하지 않은 경우에 적용되는 상태로 돌아갑니다.
nodefaults
일반 채널 블록과 마찬가지로 빈 행을 사용하여 각 defaults 또는 nodefaults 채널 블록을 다른 채널 블록과 구분해야 합니다. defaults 및 nodefaults 채널 블록은 구성 파일에서 로컬 채널 앞에 표시될 수 있는 유일한 채널 블록입니다. 그러나, 다른 채널 블록과 마찬가지로 이 채널 블록도 마지막 다시 쓰기 규칙 뒤에 표시해야 합니다.
다음 표는 알파벳순으로 나열된 키워드 목록입니다.
표 12–1 채널 키워드(알파벳순)
키워드 |
추가 정보 |
---|---|
733 | |
822 | |
addreturnpath | |
addrsperfile | |
Aliasdetourhost | |
aliaslocal | |
aliaspostmaster | |
allowetrn | |
allowswitchchannel | |
alternatechannel | |
alternateblocklimit | |
alternatelinelimit | |
alternaterecipientlimit | |
authrewrite | |
backoff | |
bangoverpercent | |
bangstyle | |
bidirectional | |
blocketrn | |
blocklimit | |
cacheeverything | |
cachefailures | |
cachesuccesses | |
channelfilter | |
charset7 | |
charset8 | |
charsetesc | |
checkehlo | |
commentinc | |
commentmap | |
commentomit | |
commentstrip | |
commenttotal | |
connectalias | |
connectcanonical | |
copysendpost | |
copywarnpost | |
daemon | |
datefour | |
datetwo | |
dayofweek | |
defaulthost | |
defaultmx | |
defaultnameservers | |
deferralrejectlimit | |
deferred | |
defragment | |
dequeue_removeroute | |
destinationfilter | |
destinationnosolicit | |
destinationspamfilterXoptin | |
disableetrn | |
dispositionchannel | |
disconnectbadauthlimit | |
disconnectbadcommandlimit | |
domainetrn | |
domainvrfy | |
dropblank | |
ehlo | |
eightbit | |
eightnegotiate | |
eightstrict | |
errsendpost | |
errwarnpost | |
expandchannel | |
expandlimit | |
expnallow | |
expndisable | |
expndefault | |
exproute | |
fileinto | |
filesperjob | |
filter | |
forwardcheckdelete | |
forwardchecknone | |
forwardchecktag | |
header_733 | |
header_822 | |
header_uucp | |
headerlabelalign | |
headerlimit | |
headerlinelength | |
headerread | |
headertrim | |
holdexquota | |
holdlimit | |
identnone | |
identnonelimited | |
identnonenumeric | |
identnonesymbolic | |
identtcp | |
identtcplimited | |
identtcpsymbolic | |
ignoreencoding | |
immnonurgent | |
improute | |
includefinal | |
inenttcpnumeric | |
inner | |
innertrim | |
interfaceaddress | |
interpretencoding | |
language | |
lastresort | |
linelength | |
linelimit | |
localvrfy | |
logging | |
logheader | |
loopcheck | |
mailfromdnsverify | |
master | |
master_debug | |
maxblocks | |
maxheaderaddrs | |
maxheaderchars | |
maxjobs | |
maxlines | |
maxprocchars | |
maysaslserver | |
maytls | |
maytlsclient | |
maytlsserver | |
missingrecipientpolicy | |
msexchange | |
multiple | |
mustsaslserver | |
musttls | |
musttlsclient | |
musttlsserver | |
mx | |
namelengthlimit |
일반 및 Filename Content-type 및 Content-disposition 매개 변수의 길이 제어 |
nameservers | |
noaddreturnpath | |
nobangoverpercent | |
noblocklimit | |
nocache | |
nochannelfilter | |
nodayofweek | |
nodefaulthost | |
nodeferred | |
nodefragment | |
nodestinationfilter | |
nodropblank | |
noehlo | |
noexproute | |
noexquota | |
nofileinto | |
nofilter | |
noheaderread | |
noheadertrim | |
noimproute | |
noinner | |
noinnertrim | |
nolinelimit | |
nologging | |
noloopcheck | |
nomailfromdnsverify | |
nomaster_debug | |
nomsexchange | |
nomx | |
norandomemx | |
nonurgentbackoff | |
nonurgentblocklimit | |
nonurgentnotices | |
noreceivedfor | |
noreceivedfrom | |
noremotehost | |
norestricted | |
noreturnaddress | |
noreturnpersonal | |
noreverse | |
normalbackoff | |
normalblocklimit | |
normalnotices | |
norules | |
nosasl | |
nosaslserver | |
nosaslswitchchannel | |
nosendetrn | |
nosendpost | |
noservice | |
noslave_debug | |
nosmtp | |
nosourcefilter | |
noswitchchannel | |
notices | |
notificationchannel | |
notls | |
notlsclient | |
notlsserver | |
novrfy | |
nowarnpost | |
nox_env_to | |
parameterlengthlimit |
일반 및 Filename Content-type 및 Content-disposition 매개 변수의 길이 제어 |
percentonly | |
percents | |
personalinc | |
personalmap | |
personalomit | |
personalstrip | |
pool | |
port | |
postheadbody | |
postheadonly | |
randommx | |
receivedfor | |
receivedfrom | |
recipientcutoff | |
recipientlimit | |
rejectsmtplonglines | |
remotehost | |
restricted | |
returnaddress | |
returnenvelope | |
returnpersonal | |
reverse | |
routelocal | |
rules | |
saslswitchchannel | |
sendetrn | |
sendpost | |
sensitivitycompanyconfidential | |
sensitivitynormal | |
sensitivitypersonal | |
sensitivityprivate | |
service | |
sevenbit | |
silentetrn | |
single | |
single_sys | |
slave | |
slave_debug | |
smtp | |
smtp_cr | |
smtp_crlf | |
smtp_crorlf | |
smtp_lf | |
sourceblocklimit | |
sourcecommentinc | |
sourcecommentmap | |
sourcecommentomit | |
sourcecommentstrip | |
sourcecommenttotal | |
sourcefilter | |
sourcenosolicit | |
sourcepersonalinc | |
sourcepersonalmap | |
sourcepersonalomit | |
sourcepersonalstrip | |
sourceroute | |
sourcespamfilterXoptin | |
streaming | |
subaddressexact | |
subaddressrelaxed | |
subaddresswild | |
subdirs | |
submit | |
suppressfinal | |
switchchannel | |
threaddepth | |
tlsswitchchannel | |
transactionlimit | |
truncatesmtplonglines | |
unrestricted | |
urgentbackoff | |
urgentblocklimit | |
urgentnotices | |
useintermediate | |
user | |
uucp | |
viaaliasoptional | |
viaaliasrequired | |
vrfyallow | |
vrfydefault | |
vrfyhide | |
warnpost | |
wrapsmtplonglines | |
x_env_to |
다음 표는 범주화한 키워드 목록입니다. 표와 범주는 다음과 같습니다.
표 12–2 Address Handling Keywords
표 12–3 Attachments and MIME Processing
표 12–4 Character Sets and Eight Bit Data
표 12–5 File Creation in the MTA Queue Area
표 12–6 Header Keywords
표 12–7 Incoming Channel Matching and Switching Keywords
표 12–8 Logging and Debugging Channel Keywords
표 12–9 Long Address Lists or Headers Channel Keywords
표 12–10 Mailbox Filter Channel Keywords
표 12–11 NO-SOLICIT SMTP Extension Support Keywords
표 12–12 Notification and Postmaster Messages Keywords
표 12–13 Processing Control and Job Submission Keywords
표 12–14 Sensitivity Limit Keywords
표 12–15 Keywords for Limits on Messages, User Quotas, Privileges, and Authentication Attempts
표 12–16 SMTP Authentication, SASL and TLS Keywords
표 12–17 SMTP Commands and Protocol Keywords
표 12–18 TCP/IP Connection and DNS Lookup Support Keywords
표 12–19 Miscellaneous Keywords
키워드 |
페이지 |
정의 |
---|---|---|
주소 처리 |
||
733 |
봉투에 percents와 동의어인 % 라우팅을 사용합니다. 주소 유형 및 규칙 |
|
822 |
봉투에 sourceroute와 동일한 소스 루트를 사용합니다. |
|
addreturnpath |
Return-path: 헤더를 이 채널의 대기열에 포함된 메일에 추가합니다. |
|
aliaslocal |
별칭 파일 및 별칭 데이터베이스에서 다시 쓴 주소를 조회합니다. |
|
authrewrite |
MTA에서 인증된 메일 발송자 정보(사용 가능한 경우)를 헤더로 전파하도록 하기 위해 소스 채널에서 사용됩니다. |
|
bangoverpercent |
A!B%C를 A!(B%C)로 그룹화합니다. |
|
bangstyle |
봉투에 uucp와 동의어인 UUCP ! 라우팅을 사용합니다. |
|
defaulthost |
완성되지 않은 주소를 수정할 때 사용할 호스트 이름 지정 주소를 완성하기 위해 사용할 도메인 이름을 지정합니다. |
|
dequeue_removeroute |
봉투의 To: 주소에서 소스 경로를 제거합니다. |
|
exproute |
주소가 원격 시스템에 전달될 때 명시적 라우팅이 필요합니다. |
|
holdlimit |
봉투의 수신자 주소 수가 이 제한을 초과할 경우 메일을 보관합니다. |
|
improute |
이 채널 주소에 대한 암시적 라우팅이 필요합니다. |
|
missingrecipientpolicy |
수신자 헤더가 없는 메일을 적법화(헤더 추가)하는 방법에 대한 정책을 설정합니다. |
|
noaddreturnpath |
메일을 대기열에 포함할 때 Return-path: 헤더를 추가하지 않습니다. |
|
nobangoverpercent |
A!B%C를 (A!B)%C로 그룹화합니다. |
|
nodefaulthost |
완성되지 않은 주소를 수정할 때 사용할 호스트 이름 지정 주소를 완성하기 위해 사용할 도메인 이름을 지정하지 않습니다. |
|
noexproute |
이 채널의 주소에 대한 명시적 라우팅이 필요하지 않습니다. |
|
noimproute |
이 채널의 주소에 대한 암시적 라우팅이 필요하지 않습니다. |
|
noreceivedfrom |
봉투의 To: 및 From: 주소에서 Received: 헤더 행 구성 원본 봉투의 From: 주소를 포함하지 않고 Received: 헤더 행을 지시합니다. |
|
noremotehost |
완성되지 않은 주소를 수정할 때 사용할 호스트 이름 지정 주소를 완성하기 위해 로컬 호스트의 도메인 이름을 기본 도메인 이름으로 사용합니다. |
|
norestricted |
unsrestricted와 동일합니다. |
|
noreverse |
메일의 주소를 역방향 주소 처리에서 제외합니다. |
|
norules |
이 채널에 대해 채널별 다시 쓰기 규칙 검사를 실행하지 않습니다. |
|
percentonly |
뱅 경로를 무시합니다. 봉투에 % 라우팅을 사용합니다. |
|
percents |
봉투에 733과 동의어인 % 라우팅을 사용합니다. |
|
remotehost |
완성되지 않은 주소를 수정할 때 사용할 호스트 이름 지정 주소를 완성하기 위해 원격 호스트의 이름을 기본 도메인 이름으로 사용합니다. |
|
restricted |
채널이 인코딩을 필요로 하는 메일 시스템에 연결됩니다. |
|
reverse |
주소를 주소 역방향 데이터베이스 또는 REVERSE 매핑에 대해 검사합니다. |
|
routelocal |
채널에 주소를 다시 쓸 때 MTA가 주소의 명시적 라우팅을 “단락”하게 합니다. |
|
rules |
이 채널에 대해 채널별 다시 쓰기 규칙 검사를 실행합니다. |
|
sourceroute |
822와 동의어입니다. |
|
subaddressexact |
항목 일치 작업 중에 특수 하위 주소 처리를 수행하지 않습니다. 하위 주소를 포함하여 전체 메일함이 항목과 일치해야 별칭이 일치하는 것으로 간주됩니다. |
|
subaddressrelaxed |
MTA는 전체 일치와 name+* 형식의 일치를 차례로 조사한 다음 이름 부분에 대한 일치를 추가로 확인해야 합니다. |
|
subaddresswild |
MTA는 전체 하위 주소를 포함한 정확한 일치를 조사한 다음 name+* 형식의 항목을 조사해야 합니다. |
|
unrestricted |
MTA에 RFC 1137 인코딩 및 디코딩을 수행하지 않도록 지시합니다. |
|
uucp |
봉투에 bangstyle과 동의어인 UUCP! 라우팅을 사용합니다. |
|
viaaliasoptional |
채널과 일치하는 최종 수신자 주소를 별칭을 통해 생성할 필요가 없습니다. |
|
viaaliasrequired |
채널과 일치하는 최종 수신자 주소를 별칭을 통해 생성해야 합니다. |
표 12–3 첨부 파일 및 MIME 처리
키워드 |
정의 |
|
---|---|---|
defragment |
채널에 대기 중인 부분 메일을 조각 모음 채널 대기열에 대신 넣습니다. |
|
ignoreencoding |
받는 메일에서 Encoding: 헤더를 무시합니다. |
|
interpretencoding |
필요한 경우 받는 메일에서 Encoding: 헤더를 해석합니다. |
|
nodefragment |
조각 모음을 사용하지 않습니다. |
표 12–4 문자 세트 및 8비트 데이터
키워드 |
정의 |
|
---|---|---|
charset7 |
7비트 텍스트 메일과 관련된 기본 문자 세트입니다. |
|
charset8 |
8비트 텍스트 메일과 관련된 기본 문자 세트입니다. |
|
charsetesc |
이스케이프 문자를 포함하는 7비트 텍스트 메일과 관련된 기본 문자 세트입니다. |
|
eightbit |
채널에서 8비트 문자를 지원합니다. |
|
eightnegotiate |
채널에서 가능할 경우 8비트 전송 사용을 협상합니다. |
|
eightstrict |
협상되지 않은 8비트 데이터를 포함하는 메일을 거부합니다. |
|
sevenbit |
8비트 문자를 지원하지 않으므로 8비트 문자를 인코딩해야 합니다. |
표 12–5 MTA 대기열 영역에서 파일 만들기
키워드 |
페이지 |
정의 |
---|---|---|
addrsperfile |
채널 대기열에서 단일 메일 파일과 연결될 수 있는 최대 수신자 수를 제한합니다. |
|
expandchannel |
expandlimit 적용으로 인해 지연된 확장을 수행할 채널을 지정합니다. |
|
expandlimit |
주소 수가 이 제한을 초과할 경우 받는 메일을 “오프라인”으로 처리합니다. |
|
multiple |
메일 파일의 수신자 수를 제한하지 않습니다. SMTP 채널의 기본값은 99입니다. |
|
single |
채널의 각 대상 주소에 대해 별도의 메일 복사본을 만듭니다. |
|
single_sys |
사용된 각 대상 시스템에 대해 단일 메일 복사본을 만듭니다. |
|
subdirs |
채널 대기열의 메일을 분산시킬 하위 디렉토리 수를 지정합니다. |
표 12–6 헤더 키워드
키워드 |
정의 |
|
---|---|---|
authrewrite |
MTA에서 인증된 메일 발송자 정보(사용 가능한 경우)를 헤더로 전파하도록 하기 위해 소스 채널에서 사용됩니다. |
|
commentinc |
메일 헤더 행의 주석을 그대로 둡니다. |
|
commentmap |
COMMENT_STRINGS 매핑 테이블을 통해 메일 헤더 행에 주석 문자열을 실행합니다. |
|
commentomit |
메일 헤더 행에서 주석을 제거합니다. |
|
commentstrip |
메일 헤더 행의 주석 필드에서 문제가 있는 문자를 제거합니다. |
|
commenttotal |
Received: 헤더 행을 제외한 모든 헤더 행에서 주석(괄호 안의 내용)을 제거합니다. 권장되지 않습니다. |
|
datefour |
모든 연도 필드를 네 자리로 확장합니다. |
|
datetwo |
네 자리 날짜에서 앞의 두 자리를 제거하여두 자리 날짜를 사용해야 하는 메일 시스템과 호환되게 합니다. 그 밖의 다른 목적으로 사용해서는 안 됩니다. |
|
dayofweek |
요일 정보를 보존하고 이 정보를 날짜 및 시간 헤더에 추가합니다(없는 경우). |
|
defaulthost |
완성되지 않은 주소를 수정할 때 사용할 호스트 이름 지정 주소를 완성하기 위해 사용할 도메인 이름을 지정합니다. |
|
dropblank |
받는 메일에서 잘못된 빈 헤더를 제거합니다. |
|
header_733 |
메일 헤더에 % 라우팅을 사용합니다. |
|
header_822 |
메일 헤더에 소스 경로를 사용합니다. |
|
headerlabelalign |
이 채널의 대기열에 포함된 메일 헤더에 대한 맞춤 점을 제어합니다. 맞춤 점은 정수 값 인수를 가집니다. |
|
headerlinelength |
이 채널의 대기열에 포함된 헤더 행의 길이를 제어합니다. |
|
headerread |
원본 메일 헤더를 처리하기 전에 옵션 파일의 헤더 자르기 규칙을 메일 대기열에 포함된 메일 헤더에 적용합니다. |
|
headertrim |
원본 메일 헤더를 처리한 후에 옵션 파일의 헤더 자르기 규칙을 메일 헤더에 적용합니다. |
|
header_uucp |
헤더에 ! 라우팅을 사용합니다. |
|
inner |
메일을 구문 분석하고 내부 헤더를 다시 씁니다. |
|
innertrim |
옵션 파일의 헤더 자르기 규칙을 내부 메일 헤더에 적용합니다. |
|
language |
헤더에 기본 언어를 지정합니다. |
|
maxheaderaddrs |
한 행에 표시할 수 있는 주소 수를 제어합니다. |
|
maxheaderchars |
한 행에 표시할 수 있는 문자 수를 제어합니다. |
|
missingrecipientpolicy |
수신자 헤더가 없는 메일을 적법화(헤더 추가)하는 방법에 대한 정책을 설정합니다. |
|
nodayofweek |
날짜 및 시간 헤더에서 요일을 제거하여이 정보를 처리할 수 없는 메일 시스템과 호환되게 합니다. 그 밖의 다른 목적으로 사용해서는 안 됩니다. |
|
nodefaulthost |
완성되지 않은 주소를 수정할 때 사용할 호스트 이름 지정 주소를 완성하기 위해 사용할 도메인 이름을 지정하지 않습니다. |
|
nodropblank |
받는 메일에서 잘못된 빈 헤더를 제거하지 않습니다. |
|
noheaderread |
옵션 파일의 헤더 자르기 규칙을 적용하지 않습니다. |
|
noheadertrim |
옵션 파일의 헤더 자르기 규칙을 적용하지 않습니다. |
|
noinner |
내부 메일 헤더 행을 다시 쓰지 않습니다. |
|
noinnertrim |
내부 메일 헤더에 헤더 자르기를 적용하지 않습니다. |
|
noreceivedfor |
봉투의 To: 및 From: 주소에서 Received: 헤더 행 구성 봉투 수신자 정보를 포함하지 않고 Received: 헤더 행을 구성합니다. |
|
noreceivedfrom |
봉투의 To: 및 From: 주소에서 Received: 헤더 행 구성 원본 봉투의 From: 주소를 포함하지 않고 Received: 헤더 행을 지시합니다. |
|
noremotehost |
완성되지 않은 주소를 수정할 때 사용할 호스트 이름 지정 주소를 완성하기 위해 로컬 호스트의 도메인 이름을 기본 도메인 이름으로 사용합니다. |
|
noreverse |
채널에 대기 중인 메일에서 역방향 주소 처리를 사용하지 않습니다. |
|
norules |
이 채널에 대해 채널별 다시 쓰기 규칙 검사를 실행하지 않습니다. |
|
nox_env_to |
X-Envelope-to 헤더 행을 제거합니다. |
|
personalinc |
메일 헤더 행의 개인 이름 필드를 그대로 둡니다. |
|
personalmap |
PERSONAL_NAMES 매핑 테이블을 통해 개인 이름을 실행합니다. |
|
personalomit |
메일 헤더 행에서 개인 이름 필드를 제거합니다. |
|
personalstrip |
헤더 행의 개인 이름 필드에서 문제가 있는 문자를 제거합니다. |
|
receivedfor |
봉투의 To: 및 From: 주소에서 Received: 헤더 행 구성 메일의 주소가 한 명의 봉투 수신자로 지정된 경우 해당 봉투의 To: 주소를 메일이 구성하는 Received: 헤더 행에 포함합니다. |
|
receivedfrom |
봉투의 To: 및 From: 주소에서 Received: 헤더 행 구성 MTA에서 봉투의 From: 주소를 변경한 경우, 받는 메일에 대한 Received: 헤더 행을 구성할 때 봉투의 원래 From: 주소를 포함합니다. |
|
remotehost |
완성되지 않은 주소를 수정할 때 사용할 호스트 이름 지정 주소를 완성하기 위해 원격 호스트의 이름을 기본 도메인 이름으로 사용합니다. |
|
restricted |
채널이 이 인코딩을 필요로 하는 메일 시스템에 연결됩니다. |
|
reverse |
주소를 주소 역방향 데이터베이스 또는 REVERSE 매핑에 대해 검사합니다. |
|
rules |
이 채널에 대해 채널별 다시 쓰기 규칙 검사를 실행합니다. |
|
sensitivitycompany confidential |
Companyconfidential이 메일에 대한 최대 민감도 제한으로 적용됩니다. |
|
sensitivitynormal |
Normal이 메일에 대한 최대 민감도 제한으로 적용됩니다. |
|
sensitivitypersonal |
Personal이 메일에 대한 최대 민감도 제한으로 적용됩니다. |
|
sensitivityprivate |
Private이 메일에 대한 최대 민감도 제한으로 적용됩니다. |
|
sourcecommentinc |
받는 메일 헤더 행의 주석을 그대로 둡니다. |
|
sourcecommentmap |
소스 채널을 통해 헤더 행에 주석 문자열을 실행합니다. |
|
sourcecommentomit |
받는 메일 헤더 행(예: To:, From:, Cc: 등과 같은 주소 지정 헤더에서 주석을 제거하도록 MTA에 지시합니다. |
|
sourcecommentstrip |
받는 헤더 행의 주석 필드에서 문제가 있는 문자를 제거합니다. |
|
sourcecommenttotal |
받는 메일에서 주석(괄호 안의 내용)을 제거합니다. |
|
sourcepersonalinc |
받는 메일 헤더 행의 개인 이름을 그대로 둡니다. |
|
sourcepersonalmap |
소스 채널을 통해 개인 이름을 실행합니다. |
|
sourcepersonalomit |
받는 메일 헤더 행에서 개인 이름 필드를 제거합니다. |
|
sourcepersonalstrip |
받는 메일 헤더 행의 개인 이름 필드에서 문제가 있는 문자를 제거합니다. |
|
unrestricted |
MTA에 RFC 1137 인코딩 및 디코딩을 수행하지 않도록 지시합니다. |
|
x_env_to |
X-Envelope-to 헤더 행을 생성합니다. |
표 12–7 받는 채널 일치 및 전환 키워드
키워드 |
정의 |
|
---|---|---|
allowswitchchannel |
switchchannel 채널에서 이 채널로 전환을 허용합니다. |
|
nosaslswitchchannel |
SASL 인증에 성공할 때 이 채널로 전환하지 않습니다. |
|
noswitchchannel |
채널 전환을 수행하지 않습니다. |
|
switchchannel |
서버 채널에서 원본 호스트와 연결된 채널로 전환합니다. |
|
saslswitchchannel |
클라이언트가 SASL을 성공적으로 사용하면 받는 연결이 지정한 채널로 전환되게 합니다. |
|
tlsswitchchannel |
TLS 협상이 성공하면 다른 채널로 전환합니다. |
표 12–8 로깅 및 디버깅 채널 키워드
키워드 |
정의 |
|
---|---|---|
로깅 |
로그 파일에 대기열에서 제거되거나 포함된 메일에 대해 기록하고 특정 채널에 대한 로깅을 활성화합니다. |
|
loopcheck |
MTA가 자체적으로 통신하는지 확인하도록 SMTP EHLO 응답 배너에 문자열을 넣습니다. |
|
master_debug |
채널의 마스터 프로그램 출력에 디버깅 출력을 만듭니다. |
|
nologging |
로그 파일에 대기열에 포함되거나 대기열에서 제거된 메일에 대해 기록하지 않습니다. |
|
noloopcheck |
SMTP EHLO 응답 배너에 문자열을 넣지 않습니다. |
|
nomaster_debug |
채널의 마스터 프로그램 출력에 디버깅 출력을 만들지 않습니다. |
|
noslave_debug |
슬레이브 디버깅 출력을 생성하지 않습니다. |
|
slave_debug |
슬레이브 디버깅 출력을 생성합니다. |
표 12–9 긴 주소 목록 또는 헤더 채널 키워드
키워드 |
정의 |
|
---|---|---|
expandchannel |
expandlimit 적용으로 인해 지연된 확장을 수행할 채널을 지정합니다. |
|
expandlimit |
주소 수가 이 제한을 초과할 경우 받는 메일을 “오프라인”으로 처리합니다. |
|
holdlimit |
주소 수가 이 제한을 초과할 경우 메일을 보관합니다. |
|
maxprocchars |
처리 및 다시 쓰기 가능한 최대 길이 헤더입니다. |
표 12–10 메일함 필터 채널 키워드
키워드 |
정의 |
|
---|---|---|
channelfilter |
채널 필터 파일의 위치이며 destinationfilter와 동일합니다. |
|
destinationfilter |
보내는 메일에 적용되는 채널 필터 파일의 위치입니다. |
|
destinationspamfilter Xoptin |
스팸 필터링 소프트웨어 X를 통해 이 채널을 대상으로 하는 메일을 실행합니다. |
|
fileinto |
메일함 필터 fileinto 작업을 적용할 때 주소에 미치는 영향을 지정합니다. |
|
filter |
사용자 필터 파일의 위치를 지정합니다. |
|
nochannelfilter |
보내는 메일에 대해 채널 필터링을 수행하지 않습니다. nodestinationfilter라고도 합니다. |
|
nodestinationfilter |
보내는 메일에 대해 채널 필터링을 수행하지 않습니다. |
|
nofileinto |
메일함 필터 fileinto 연산자가 영향을 미치지 않습니다. |
|
nofilter |
사용자 메일함 필터링을 수행하지 않습니다. |
|
nosourcefilter |
받는 메일에 대해 채널 필터링을 수행하지 않습니다. |
|
sourcefilter |
받는 메일에 대해 채널 필터 파일의 위치를 지정합니다. |
|
sourcespamfilterXoptin |
스팸 필터링 소프트웨어 X를 통해 이 채널에서 수신한 메일을 실행합니다. |
표 12–11 NO-SOLICIT SMTP 확장 지원 키워드
키워드 |
정의 |
|
---|---|---|
sourcenosolicit |
이 채널이 전송하는 메일에서 차단될 요청 필드 값의 쉼표로 구분된 목록을 지정합 니다. |
|
destinationnosolicit |
이 채널의 대기열에 포함된 메일에서 허용되지 않는 요청 필드 값의 쉼표로 구분된 목록을 지정합니다. |
표 12–12 알림 및 포스트마스터 메일 키워드
키워드 |
정의 |
|
---|---|---|
(전체 알림 절차는 전달 상태 알림 메일 제어 페이지 참조) |
||
aliaspostmaster |
공식 채널 이름에서 포스트마스터 아이디로 주소 지정된 메일은 postmaster@local-host로 리디렉션됩니다. 여기서 local-host는 로컬 호스트 이름(로컬 채널에 있는 이름)입니다. |
|
copysendpost |
전송 실패 메일에서 보낸 사람 주소가 비어 있지 않는 한 실패 알림 복사본을 포스트마스터에게 보냅니다. |
|
copywarnpost |
전달되지 않은 메일에서 보낸 사람 주소가 비어 있지 않는 한 경고 메일 복사본을 포스트마스터에게 보냅니다. |
|
errsendpost |
메일 발송자에게 알림을 보낼 수 없는 경우 실패 알림 복사본을 포스트마스터에게 보냅니다. |
|
errwarnpost |
메일 발송자에게 알림을 보낼 수 없는 경우 경고 메일 복사본을 포스트마스터에게 보냅니다. |
|
includefinal |
전달 알림에 최종 수신자 주소 형식을 포함합니다. |
|
nonurgentnotices |
우선 순위가 낮은 메일에 대해 알림을 보내고 메일을 반환하기 전에 경과할 수 있는 시간을 지정합니다. |
|
noreturnaddress |
RETURN_ADDRESS 옵션 값을 포스트마스터 주소 이름으로 사용합니다. |
|
noreturnpersonal |
RETURN_PERSONAL 옵션 값을 포스트마스터 개인 이름으로 사용합니다. |
|
normalnotices |
우선 순위가 중간인 메일에 대해 알림을 보내고 메일을 반환하기 전에 경과할 수 있는 시간을 지정합니다. |
|
nosendpost |
전달이 실패한 모든 메일의 복사본을 포스트마스터에게 보내지 않습니다. |
|
notices |
알림을 보낸 후 메일이 반환되기 이전에 경과할 수 있는 시간을 지정합니다. |
|
nowarnpost |
경고 메일의 복사본을 포스트마스터에게 보내지 않습니다. |
|
postheadbody |
헤더와 메일 내용을 모두 반환합니다. |
|
postheadonly |
헤더만 포스트마스터에게 반환됩니다. |
|
returnaddress |
로컬 포스트마스터에 대한 반송 주소를 지정합니다. |
|
returnenvelope |
빈 봉투 반송 주소 사용을 제어합니다. |
|
returnpersonal |
로컬 포스트마스터에 대한 개인 이름을 설정합니다. |
|
sendpost |
실패한 모든 메일의 복사본을 포스트마스터에게 보냅니다. |
|
suppressfinal |
원본 주소 형식이 있는 경우 알림 메일에서 최종 주소 형식을 생략합니다. |
|
urgentnotices |
우선 순위가 높은 메일에 대해 알림을 보내고 메일을 반환하기 전에 경과할 수 있는 시간을 지정합니다. |
|
useintermediate |
목록을 확장한 이후 사용자 메일함 이름이 생성되기 이전에 생성되는 중간 주소 형식을 사용합니다. |
|
warnpost |
경고 메일의 복사본을 포스트마스터에게 보냅니다. |
표 12–13 제어 및 작업 전송 처리 키워드
키워드 |
정의 |
|
---|---|---|
(기능에 대한 자세한 내용은 메일 처리 및 전달 구성 참조) |
||
backoff |
전달되지 않은 메일의 재전달 시도 간격입니다. normalbackoff, nonurgentbackoff, urgentbackoff 키워드로 대체될 수 있습니다. |
|
bidirectional |
마스터 및 슬레이브 프로그램에서 사용되는 채널입니다. |
|
deferred |
Deferred-delivery: 헤더 행을 인식하고 수락합니다. |
|
expandchannel |
expandlimit 적용으로 인해 지연된 확장을 수행할 채널을 지정합니다. |
|
expandlimit |
주소 수가 이 제한을 초과할 경우 받는 메일을 “오프라인”으로 처리합니다. |
|
filesperjob |
단일 작업에서 처리할 대기열 항목의 수입니다. |
|
높음, 중간 및 낮음 우선 순위 메일을 제출하면 바로 전달을 시작합니다. |
||
master |
마스터 프로그램에서 사용되는 채널(master)입니다. |
|
maxjobs |
채널에 대해 동시에 실행될 수 있는 최대 작업 수입니다. |
|
nodeferred |
Deferred-delivery: 헤더 행을 수락하지 않음을 지정합니다. |
|
nonurgentbackoff |
낮음 우선 순위 메일의 재전달 시도 간격입니다. |
|
nonurgentblocklimit |
이 크기 이상인 메일의 우선 순위를 낮음(두 번째 우선 순위 클래스) 이하로 지정합니다. 즉, 해당 메일은 항상 다음 정기 작업이 처리되는 동안 대기한 후 처리됩니다. |
|
normalbackoff |
중간 우선 순위 메일의 재전달 시도 간격입니다. |
|
normalblocklimit |
이 크기 이상인 메일의 우선 순위를 낮음으로 지정합니다. |
|
noservice |
이 채널로 받는 메일에 대한 서비스 변환을 CHARSET-CONVERSION을 통해 활성화해야 합니다. |
|
pool |
채널에 대한 풀을 지정합니다. 현재 채널에 대한 전달 작업을 풀링해야 하는 풀 이름이 뒤에 와야 합니다. |
|
service |
CHARSET-CONVERSION 항목에 관계 없이 서비스 변환을 무조건적으로 사용합니다. |
|
slave |
슬레이브 프로그램에서 사용되는 채널(slave)입니다. |
|
threaddepth |
다중 스레드 SMTP 클라이언트를 사용하여 새 스레드를 트리거하는 메일 수입니다. |
|
transactionlimit |
연결당 허용되는 메일 수를 제한합니다. |
|
urgentbackoff |
높음 우선 순위 메일의 재전달 시도 간격입니다. |
|
urgentblocklimit |
이 크기 이상인 메일의 우선 순위를 중간으로 지정합니다. |
|
user |
파이프 채널에서 실행할 아이디를 나타내는 데 사용됩니다. |
표 12–14 민감도 제한 키워드
키워드 |
정의 |
|
---|---|---|
sensitivitycompany confidential |
메일에 적용되는 최대 민감도 제한입니다. |
|
sensitivitynormal |
Normal이 메일에 대한 최대 민감도 제한으로 적용됩니다. |
|
sensitivitypersonal |
Personal이 메일에 대한 최대 민감도 제한으로 적용됩니다. |
|
sensitivityprivate |
Private이 메일에 대한 최대 민감도 제한으로 적용됩니다. |
표 12–15 메일, 사용자 할당량, 권한 및 인증 시도의 제한 키워드
키워드 |
정의 |
|
---|---|---|
alternatechannel |
크기 제한 또는 수신자 수 제한을 초과하는 메일 대상 다시 지정 alternateblocklimit, alternatelinelimit 및 alternaterecipientlimit에 대한 대체 대상 채널입니다. |
|
alternateblocklimit |
크기 제한 또는 수신자 수 제한을 초과하는 메일 대상 다시 지정 메일을 alternativechannel로 보내기 이전에 메일의 블록 수 제한을 지정합니다. |
|
alternatelinelimit |
크기 제한 또는 수신자 수 제한을 초과하는 메일 대상 다시 지정 메일을 alternativechannel로 보내기 이전에 메일의 행 수 제한을 지정합니다. |
|
alternaterecipientlimit |
크기 제한 또는 수신자 수 제한을 초과하는 메일 대상 다시 지정 메일을 alternativechannel로 보내기 이전에 메일의 수신자 수 제한을 지정합니다. |
|
blocklimit |
각 메일에 허용되는 최대 MTA 블록 수입니다. |
|
disconnectbadauthlimit |
세션의 연결이 끊어지기 전에 세션에 허용되는 인증 시도의 실패 횟수를 제한합니다. |
|
disconnectbadcommand limit |
잘못된 세션 명령의 수를 제한합니다. |
|
disconnectrecipientlimit |
세션 수신자의 수를 제한합니다. |
|
disconnectrejectlimit |
거부된 수신자의 수를 제한합니다. |
|
disconnecttransactionlimit |
트랜잭션 수를 제한합니다. |
|
headerlimit |
가장 외부에 있는 주 메일 헤더의 최대 크기를 제한합니다. |
|
holdexquota |
할당량을 초과한 사용자의 메일을 보관합니다. |
|
holdlimit |
주소 수가 이 제한을 초과할 경우 받는 메일을 보관합니다. |
|
linelength |
채널별로 허용되는 최대 메일 행 길이를 제한합니다. |
|
linelimit |
각 메일에 허용되는 최대 행 수입니다. |
|
maxblocks |
메일에 허용되는 최대 블록 수를 지정합니다. |
|
maxlines |
메일에 허용되는 최대 행 수를 지정합니다. |
|
nameparameterlengthlimit |
일반 및 Filename Content-type 및 Content-disposition 매개 변수의 길이 제어 name content-type 및 filename content-disposition 매개 변수가 잘리는 지점을 제어합니다. |
|
noblocklimit |
각 메일에 허용되는 MTA 블록 수를 제한하지 않습니다. |
|
noexquota |
할당량을 초과하는 사용자의 메일을 메일 발송자에게 반환합니다. |
|
nolinelimit |
각 메일에 허용되는 행 수에 지정된 제한이 없습니다. |
|
nonurgentblocklimit |
이 크기 이상인 메일의 우선 순위를 낮음(두 번째 우선 순위 클래스) 이하로 지정합니다. 즉, 해당 메일은 항상 다음 정기 작업이 처리되는 동안 대기한 후 처리됩니다. |
|
normalblocklimit |
이 크기 이상인 메일의 우선 순위를 낮음으로 지정합니다. |
|
parameterlengthlimit |
일반 및 Filename Content-type 및 Content-disposition 매개 변수의 길이 제어 일반 content-type 및 content-disposition 매개 변수가 잘리는 지점을 조절합니다. |
|
recipientcutoff. |
수신자가 이 값을 초과할 경우 메일을 거부합니다. |
|
recipientlimit |
메일에 허용되는 수신자 주소 수를 제한합니다. |
|
rejectsmtplonglines |
1000자(CRLF 포함)보다 긴 행을 포함하는 메일을 거부합니다. |
|
sourceblocklimit |
각 받는 메일에 허용되는 최대 MTA 블록 수입니다. |
|
truncatesmtplonglines |
1000자를 초과하는 행을 자릅니다. |
|
wrapsmtplonglines |
1000자를 초과하는 행을 줄 바꿈합니다. |
|
urgentblocklimit |
이 크기 이상인 메일의 우선 순위를 중간으로 지정합니다. |
표 12–16 SMTP 인증, SASL 및 TLS 키워드
키워드 |
정의 |
|
---|---|---|
(기능에 대한 자세한 내용은 SMTP 인증, SASL 및 TLS 참조) |
||
authrewrite |
MTA에서 인증된 메일 발송자 정보(사용 가능한 경우)를 헤더로 전파하도록 하기 위해 소스 채널에서 사용됩니다. |
|
maysaslserver |
클라이언트가 SASL 인증 사용을 시도하도록 허용합니다. |
|
maytls |
MTA가 받는 연결에 TLS를 제공하고 보내는 연결에 TLS를 시도하도록 합니다. |
|
maytlsclient |
TLS를 지원하는 SMTP 서버에 메일을 보낼 경우 MTA SMTP 클라이언트가 TLS 사용을 시도합니다. |
|
maytlsserver |
MTA SMTP 서버에서 STARTTLS 확장 지원을 광고하고 메일을 받을 때 TLS 사용을 허용합니다. |
|
msexchange |
Microsoft Exchange 게이트웨이 채널 지정 TCP/IP 채널에서 사용되며 이 채널이 Microsoft Exchange 게이트웨이 및 클라이언트와 통신하는 채널임을 MTA에 알려줍니다. |
|
mustsaslserver |
SMTP 서버는 원격 클라이언트가 성공적으로 인증되지 않는 경우 메일이 수락되지 않습니다. |
|
musttls |
보내는 연결과 받는 연결 모두에서 TLS 사용을 강제합니다. |
|
musttlsclient |
MTA SMTP 클라이언트는 메일을 보낼 때 TLS 사용을 강제합니다(MTA가 STARTTLS 명령을 실행하고 해당 명령이 성공해야 함). |
|
musttlsserver |
MTA SMTP 서버에서 STARTTLS 확장 지원을 광고하고 메일을 받을 때 TLS 사용을 강제합니다. |
|
nomsexchange |
기본값입니다. |
|
nosasl |
SASL 인증이 허용 또는 시도되지 않습니다. |
|
nosaslserver |
SASL 인증이 허용되지 않습니다. |
|
notls |
TLS가 허용 또는 시도되지 않습니다. |
|
notlsclient |
보내는 연결에서 MTA SMTP 클라이언트가 TLS 사용을 시도하지 않습니다(보내는 연결 중에 STARTTLS 명령이 실행되지 않음). |
|
notlsserver |
받는 연결에서 MTA SMTP 서버의 TLS 사용이 허용되지 않습니다(SMTP 서버에서 STARTTLS 확장을 광고하지 않고 명령 자체가 허용되지도 않음). |
|
saslswitchchannel |
클라이언트가 SASL을 성공적으로 사용하면 받는 연결이 지정한 채널로 전환되게 합니다. |
|
tlsswitchchannel |
클라이언트가 TLS 협상에 성공할 경우 받는 연결이 지정한 채널로 전환되게 합니다. 전환할 채널을 지정하는 필수 값을 사용합니다. |
표 12–17 SMTP 명령 및 프로토콜 키워드
키워드 |
정의 |
|
---|---|---|
(기능에 대한 자세한 내용은 SMTP 명령 및 프로토콜 지원 참조) |
||
allowetrn |
ETRN 명령을 수락합니다. |
|
blocketrn |
ETRN 명령을 차단합니다. |
|
checkehlo |
SMTP 응답 배너를 검사하여 EHLO 또는 HELO 중 어떤 것을 사용할지 여부를 결정합니다. |
|
disableetrn |
ETRN SMTP 명령 지원을 사용하지 않습니다. |
|
domainetrn |
도메인을 지정하는 ETRN 명령만 수락합니다. |
|
domainvrfy |
전체 주소를 사용하여 VRFY 명령을 실행합니다. |
|
ehlo |
초기 연결에 SMTP EHLO 명령을 사용합니다. |
|
eightbit |
채널에서 8비트 문자를 지원합니다. |
|
eightnegotiate |
채널에서 가능할 경우 8비트 전송 사용을 협상합니다. |
|
eightstrict |
협상되지 않은 8비트 데이터를 포함하는 메일을 거부합니다. |
|
expnallow |
DISABLE_EXPAND SMTP 채널 옵션을 사용하여 SMTP 서버 수준에서 사용 불가능으로 설정했더라도 EXPN을 허용합니다. |
|
expndisable |
EXPN을 무조건적으로 사용 불가능하게 합니다. |
|
expndefault |
SMTP 서버에 사용하도록 설정된 경우 EXPN을 허용합니다. |
|
localvrfy |
로컬 주소를 사용하여 VRFY 명령을 실행합니다. |
|
mailfromdnsverify |
MAIL FROM: 명령에 사용된 도메인이 DNS에 있는지 여부를 확인합니다. |
|
noehlo |
EHLO 명령을 사용하지 않습니다. |
|
nomailfromdnsverify |
MAIL FROM: 명령에 사용된 도메인이 DNS에 있는지 여부를 확인하지 않습니다. |
|
nosendetrn |
ETRN 명령을 보내지 않습니다. |
|
nosmtp |
SMTP 프로토콜을 지원하지 않습니다. 기본값입니다. |
|
novrfy |
VRFY 명령을 실행하지 않습니다. |
|
sendetrn |
ETRN 명령을 보냅니다. |
|
sevenbit |
8비트 문자를 지원하지 않으므로 8비트 문자를 인코딩해야 합니다. |
|
silentetrn |
채널 정보를 반향하지 않고 ETRN 명령을 수락합니다. |
|
smtp |
SMTP 프로토콜을 지원합니다. smtp 키워드는 모든 SMTP 채널에 필수입니다(이 키워드는 smtp_crorlf와 동일함). |
|
smtp_cr |
후행 줄 바꿈(LF) 없이 캐리지 리턴(CR)을 사용하여 행을 종료합니다. |
|
smtp_crlf |
행을 캐리지 리턴(CR) 줄 바꿈(LF) 시퀀스로 종료해야 합니다. |
|
smtp_crorlf |
행을 캐리지 리턴(CR), 줄 바꿈(LF) 시퀀스 또는 전체 CRLF를 사용하여 종료해야 합니다. |
|
smtp_lf |
선행 CR 없이 줄 바꿈(LF)을 사용하여 행을 종료합니다. |
|
streaming |
채널에 연결된 프로토콜에 사용되는 프로토콜 스트리밍의 범위를 제어합니다. |
|
vrfyallow |
VRFY 명령에 대한 정보 응답을 제공합니다. |
|
vrfydefault |
채널의 HIDE_VERIFY 옵션 설정에 따라 VRFY 명령에 대한 기본 응답을 제공합니다. |
|
vrfyhide |
SMTP VRFY 명령에 대한 위장 응답을 제공합니다. |
표 12–18 TCP/IP 연결 및 DNS 조회 지원 키워드
키워드 |
정의 |
|
---|---|---|
TCP/IP 연결 및 DNS 조회 지원 (기능에 대한 자세한 내용은 TCP/IP 연결 및 DNS 조회 지원 참조) |
||
cacheeverything |
모든 연결 정보를 캐시합니다. |
|
cachefailures |
연결 실패 정보만 캐시합니다. |
|
cachesuccesses |
연결 성공 정보만 캐시합니다. |
|
connectalias |
수신자 주소에 나열된 모든 호스트에 전달합니다. |
|
connectcanonical |
MTA가 연결되는 시스템에 대한 호스트 별칭에 연결합니다. |
|
daemon |
봉투 주소에 관계 없이 특정 호스트 시스템에 연결합니다. |
|
defaultmx |
채널이 네트워크에서 MX 조회를 수행할지 여부를 결정합니다. |
|
defaultnameservers |
TCP/IP 스택의 이름 서버 선택을 참조합니다. |
|
forwardcheckdelete |
역방향 DNS 조회를 수행한 경우 반환된 이름에 대한 정방향 조회를 수행하여 반환된 IP 번호가 원본과 일치하는지 확인합니다. 원본과 일치하지 않는 경우 이름을 삭제하고 IP 주소를 사용합니다. |
|
forwardchecknone |
DNS 역방향 조회 후 정방향 조회를 수행하지 않습니다. |
|
forwardchecktag |
역방향 DNS 조회를 수행한 경우 반환된 이름에 대한 정방향 조회를 수행하여 반환된 IP 번호가 원본과 일치하는지 확인합니다. 원본과 일치하지 않는 경우 이름에 * 태그를 붙입니다. |
|
identnone |
IDENT 조회를 수행하지 않고, IP를 호스트 이름으로 변환하고, 호스트 이름과 IP 주소를 모두 Received: 헤더에 포함합니다. |
|
identnonelimited |
IDENT 조회를 수행하지 않고, IP를 호스트 이름으로 변환하지만 채널 전환 중에 호스트 이름을 사용하지 않고, 호스트 이름과 IP 주소를 모두 Received: 헤더에 포함합니다. |
|
identnonenumeric |
IDENT 조회를 수행하지 않거나 IP를 호스트 이름으로 변환하지 않습니다. |
|
identnonesymbolic |
IDENT 조회를 수행하지 않고 IP를 호스트 이름으로 변환하고 호스트 이름만 Received: 헤더에 포함합니다. |
|
identtcp |
받는 SMTP 연결에서 IDENT 조회를 수행하고 IP를 호스트 이름으로 변환하고 호스트 이름과 IP 주소를 모두 Received: 헤더에 포함합니다. |
|
identtcplimited |
받는 SMTP 연결에 IDENT 조회를 수행하고 IP를 호스트 이름으로 변환하지만 채널 전환 중에 호스트 이름을 사용하지 않습니다. 호스트 이름과 IP 주소를 Received: 헤더에 포함합니다. |
|
indenttcpnumeric |
받는 SMTP 연결에서 IDENT 조회를 수행하지만 IP를 호스트 이름으로 변환하지 않습니다. |
|
identtcpsymbolic |
받는 SMTP 연결에서 IDENT 조회를 수행하고 IP를 호스트 이름으로 변환하고 호스트 이름만 Received: 헤더에 포함합니다. |
|
interfaceaddress |
지정된 TCP/IP 인터페이스 주소에 바인딩합니다. |
|
lastresort |
마지막 호스트를 지정합니다. |
|
mailfromdnsverify |
MAIL FROM: 명령에 사용된 도메인이 DNS에 있는지 여부를 확인합니다. |
|
mx |
TCP/IP 네트워크 및 소프트웨어가 MX 레코드 조회를 지원합니다. |
|
nameservers |
TCP/IP 스택의 자체 이름 서버 선택을 참조하는 대신 참조할 이름 서버 목록을 지정합니다. nameservers에는 이름 서버에 대한 공백으로 구분된 IP 주소 목록이 필요합니다. |
|
nocache |
연결 정보를 캐시하지 않습니다. |
|
nomailfromdnsverify |
MAIL FROM: 명령에 사용된 도메인이 DNS에 있는지 여부를 확인하지 않습니다. |
|
nomx |
TCP/IP 네트워크가 MX 조회를 지원하지 않습니다. |
|
nonrandomemx |
MX 조회를 수행하고 반환된 항목을 같은 우선 순위로 임의화하지 않습니다. |
|
port |
SMTP 연결에 대한 기본 포트 번호를 지정합니다. 표준 포트는 25입니다. |
|
randommx |
MX 조회를 수행하고 반환된 항목을 같은 우선 순위로 임의화합니다. |
|
single |
채널의 각 대상 주소에 대해 별도의 메일 복사본을 만들도록 지정합니다. |
|
single_sys |
사용된 각 대상 시스템에 대해 단일 메일 복사본을 만듭니다. |
|
threaddepth |
다중 스레드 SMTP 클라이언트를 사용하여 새 스레드를 트리거하는 메일 수입니다. |
표 12–19 기타 키워드
키워드 |
정의 |
|
---|---|---|
deferralrejectlimit |
잘못된 RCPT TO: 주소 수에 제한을 설정합니다. |
|
dispositionchannel |
처음에 전달 상태 알림(DSN)을 대기열에 포함하기 위한 장소로 프로세스 채널을 대체합니다. |
|
destinationfilter |
보내는 메일에 적용할 채널 수준 필터를 지정하기 위해 일반 MTA 채널에서 사용됩 니다. |
|
filter |
필터 파일 위치를 설명하는 필수 URL 인수를 가집니다. |
|
nodestinationfilter |
어느 채널 방향에 대해서도 채널 메일함 필터를 사용하지 않습니다. |
|
nosourcefilter |
소스 채널에 대해 채널 메일함 필터를 사용하지 않습니다. |
|
nofilter |
기본값이며 채널에 대해 사용자 메일함 필터를 사용하지 않는다는 것을 의미합니다. |
|
notificationchannel |
처음에 MDN(Message Disposition Notification)을 대기열에 포함하기 위한 장소로 프로세스 채널을 대체합니다. |
|
sourcefilter |
받는 메일에 적용할 채널 수준 필터를 지정하기 위해 일반 MTA 채널에서 사용됩 니다. |
|
submit |
채널을 제출 전용 채널로 표시하는 데 사용됩니다. |
|
user |
파이프 채널에서 실행할 아이디를 나타내는 데 사용됩니다. |
설치 유형에 따라 Messaging Server는 설치 시 여러 SMTP 채널을 제공합니다(아래 표 참조). 이러한 채널은 SMTP over TCP/IP를 구현합니다. 다중 스레드 TCP SMTP 채널은 디스패처의 제어에 따라 실행되는 다중 스레드 SMTP 서버를 포함합니다. 보내는 SMTP 메일은 tcp_smtp_client 채널 프로그램에서 처리되고 필요한 경우 Job Controller의 제어에 따라 실행됩니다.
표 12–20 SMTP 채널
채널 |
정의 |
---|---|
tcp_local |
원격 SMTP 호스트로부터 인바운드 메일을 받습니다. 스마트 호스트/방화벽 구성을 사용하는지 여부에 따라 아웃바운드 메일을 원격 SMTP에 직접 보내거나 스마트 호스트/방화벽 시스템으로 보냅니다. |
tcp_intranet |
인트라넷 내에서 메일을 주고 받습니다. |
tcp_auth |
tcp_local에 대한 전환 채널로 사용되며 중계 차단 제한을 피하도록 인증된 사용자를 tcp_auth 채널로 전환합니다. |
tcp_submit |
예약된 제출 포트 587에서 메일 제출(일반적으로 사용자 에이전트로부터)을 허용합니다(RFC 2476 참조). |
tcp_tas |
IA 특수 채널이 통합 메시징을 수행하는 사이트에서 사용됩니다. |
이 절에 설명된 대로 채널 키워드를 추가하거나 제거하여 이러한 채널의 정의를 수정하거나 새 채널을 만들 수 있습니다. 또한, 옵션 파일을 사용하여 TCP/IP 채널의 다양한 특성을 제어할 수 있습니다. 옵션 파일은 MTA 구성 디렉토리(msg_svr_base/config)에 저장하고 x_option으로 이름을 지정해야 합니다. 여기서 x는 채널의 이름입니다. 자세한 내용은 Sun Java System Messaging Server 6 2005Q4 Administration Reference의 Option File을 참조하십시오.
이 절은 다음 내용으로 구성되어 있습니다.
TCP/IP 채널 옵션 파일은 TCP/IP 채널의 다양한 특성을 제어합니다. 채널 옵션 파일은 MTA 구성 디렉토리에 저장하고 x_option으로 이름을 지정해야 합니다. 여기서 x는 채널의 이름입니다. 예를 들어, /msg_svr_base/config/tcp_local_option입니다.
옵션 파일은 하나 이상의 키워드와 관련 값으로 구성됩니다. 예를 들어, 옵션 파일에 DISABLE_EXPAND 키워드를 포함시키고 값을 1로 설정하여 메일링 목록 확장을 비활성화할 수 있습니다.
다른 옵션 파일 키워드를 사용하여 다음을 수행할 수 있습니다.
모든 채널 옵션 키워드 및 구문에 대한 자세한 내용은 Sun Java System Messaging Server 6 2005Q4 Administration Reference를 참조하십시오.
SMTP 채널이 EHLO, ETRN, EXPN, VRFY 등과 같은 특정 SMTP 명령을 지원하는지 여부를 지정할 수 있습니다. 또한, 채널이 DNS 도메인 확인을 지원하는지 여부, 채널에서 행 종결 기호로 사용되는 문자 등을 지정할 수 있습니다. 이 절은 다음 내용으로 구성되어 있습니다.
표 12–21은 이 절에서 설명하는 키워드를 요약해서 보여 줍니다.
표 12–21 SMTP 명령 및 프로토콜 키워드
채널 키워드 |
설명 |
---|---|
프로토콜 선택 및 행 종결 기호 |
채널이 SMTP 프로토콜을 지원하는지 여부를 지정하고 행 종결 기호로 사용되는 문자 시퀀스를 지정합니다. |
smtp |
SMTP 프로토콜을 지원합니다. smtp 키워드는 모든 SMTP 채널에 필수입니다(이 키워드는 smtp_crorlf와 동일함). |
nosmtp |
SMTP 프로토콜을 지원하지 않습니다. 기본값입니다. |
smtp_cr |
후행 줄 바꿈(LF) 없이 캐리지 리턴(CR)을 사용하여 행을 종료합니다. |
smtp_crlf |
행을 캐리지 리턴(CR) 줄 바꿈(LF) 시퀀스로 종료해야 합니다. |
smtp_lf |
선행 CR 없이 줄 바꿈(LF)을 사용하여 행을 종료합니다. |
smtp_crorlf |
행을 캐리지 리턴(CR), 줄 바꿈(LF) 시퀀스 또는 전체 CRLF를 사용하여 종료해야 합니다. |
EHLO 키워드 |
채널에서 EHLO 명령을 처리하는 방법을 지정합니다. |
ehlo |
초기 연결에 SMTP EHLO 명령을 사용합니다. |
checkehlo |
SMTP 응답 배너를 검사하여 EHLO 또는 HELO 중 어떤 것을 사용할지 여부를 결정합니다. |
noehlo |
EHLO 명령을 사용하지 않습니다. |
ETRN 키워드 |
채널에서 ETRN 명령(대기열 처리 요청)을 처리하는 방법을 지정합니다. |
allowetrn |
ETRN 명령을 수락합니다. |
blocketrn |
ETRN 명령을 차단합니다. |
domainetrn |
도메인을 지정하는 ETRN 명령만 수락합니다. |
silentetrn |
채널 정보를 반향하지 않고 ETRN 명령을 수락합니다. |
sendetrn |
ETRN 명령을 보냅니다. |
nosendetrn |
ETRN 명령을 보내지 않습니다. |
VRFY 키워드 |
채널에서 VRFY 명령을 처리하는 방법을 지정합니다. |
domainvrfy |
전체 주소를 사용하여 VRFY 명령을 실행합니다. |
localvrfy |
로컬 주소를 사용하여 VRFY 명령을 실행합니다. |
novrfy |
VRFY 명령을 실행하지 않습니다. |
vrfyallow |
VRFY 명령에 대한 정보 응답을 제공합니다. |
vrfydefault |
채널의 HIDE_VERIFY 옵션 설정에 따라 VRFY 명령에 대한 기본 응답을 제공합니다. |
vrfyhide |
SMTP VRFY 명령에 대한 위장 응답을 제공합니다. |
EXPN 키워드 |
채널에서 EXPN 키워드를 처리하는 방법을 지정합니다. |
expnallow |
DISABLE_EXPAND SMTP 채널 옵션을 사용하여 SMTP 서버 수준에서 사용 불가능으로 설정했더라도 EXPN을 허용합니다. |
expndisable |
EXPN을 무조건적으로 사용 불가능하게 합니다. |
expndefault |
SMTP 서버에 사용하도록 설정된 경우 EXPN을 허용합니다. 기본값입니다. |
DNS 도메인 확인 |
채널에서 DNS 도메인 확인을 수행하는지 여부를 지정합니다. |
mailfromdnsverify |
MAIL FROM: 명령에 사용된 도메인이 DNS에 있는지 여부를 확인합니다. |
nomailfromdnsverify |
MAIL FROM: 명령에 사용된 도메인이 DNS에 있는지 여부를 확인하지 않습니다. |
문자 세트 및 8비트 데이터 |
채널에서 8비트 데이터를 처리하는 방법을 지정합니다. (주:이러한 키워드는 일반적으로 SMTP 채널에서 사용되지만 모든 종류의 채널과 관련될 수 있습니다.) |
charset7 |
7비트 텍스트 메일과 관련된 기본 문자 세트입니다. |
charset8 |
8비트 텍스트 메일과 관련된 기본 문자 세트입니다. |
charsetesc |
이스케이프 문자를 포함하는 7비트 텍스트 메일과 관련된 기본 문자 세트입니다. |
eightbit |
채널에서 8비트 문자를 지원합니다. |
eightnegotiate |
채널에서 가능할 경우 8비트 전송 사용을 협상합니다. |
eightstrict |
채널은 잘못된 8비트 데이터를 포함하는 메일을 거부해야 합니다. |
sevenbit |
채널에서 8비트 문자를 지원하지 않으므로 8비트 문자를 인코딩해야 합니다. |
프로토콜 스트리밍 |
사용할 채널에 대한 프로토콜 스트리밍 범위를 지정합니다. |
streaming |
채널에 연결된 프로토콜에 사용되는 프로토콜 스트리밍의 범위를 제어합니다. |
키워드: smtp, nosmtp, smtp_crlf , smtp_cr, smtp_crorlf, smtp_lf
smtp 및 nosmtp 채널이 SMTP 프로토콜을 지원하는지 여부를 지정합니다. smtp 키워드 또는 이 키워드의 변형 중 하나가 모든 SMTP 채널에 필수입니다.
smtp_crlf, smtp_cr, smtp_crorlf 및 smtp_lf 키워드는 SMTP에서 MTA가 행 종결 기호로 사용하는 문자 시퀀스를 지정하는 데 사용될 수 있습니다. smtp_crlf 키워드는 행을 캐리지 리턴(CR) 줄 바꿈(LF) 시퀀스로 종료해야 함을 의미합니다. smtp_lf 또는 smtp 키워드는 선행 CR 없이 LF를 사용할 수 있음을 의미합니다. 마지막으로 smtp_cr은 후행 LF 없이 CR을 사용할 수 있음을 의미합니다. 이러한 옵션은 받는 메일의 처리에만 영향을 미칩니다.
SMTP 표준은 행 종결 기호로 CRLF를 필요로 하기 때문에 MTA는 항상 표준 CRLF 시퀀스를 생성합니다. 여러 가지 smtp 키워드는 MTA에서 추가 비표준 행 종결 기호를 수락할지 여부만 제어합니다. 예를 들어, MTA가 적법한 SMTP 메일만 수락하고 비표준행 종결 기호가 있는 메일을 거부하게 하려면 smtp_crlf를 지정할 수 있습니다.
추가 명령 협상을 허용하도록 SMTP 프로토콜이 확장되었습니다(RFC 1869). 이를 위해 RFC 821의 HELO 명령을 대체하는 새 EHLO 명령이 사용됩니다. 확장 SMTP 서버는 지원하는 확장 목록을 제공하여 EHLO에 응답합니다. 확장되지 않은 서버가 알 수 없는 명령 오류를 반환하면 클라이언트는 이전의 HELO 명령을 대신 보냅니다.
이 폴백 전략은 일반적으로 확장된 서버와 확장되지 않은 서버 모두에 잘 적용됩니다. 그러나 RFC 821에 따라 SMTP를 구현하지 않은 서버에서는 문제가 발생할 수 있습니다. 특히, 일부 비호환 서버에서는 알 수 없는 명령을 수신할 경우 연결을 끊는 것으로 알려져 있습니다.
SMTP 클라이언트는 서버에서 EHLO를 수신할 때 연결을 끊는 경우 다시 연결한 다음 HELO를 사용하는 전략을 구현합니다. 원격 서버에서 EHLO를 수신할 때 연결을 끊고 문제 상태로 전환하는 경우에는 이 전략을 적용할 수 없습니다.
그런 상황에 대처하도록 ehlo, noehlo 및 checkehlo 채널 키워드가 제공됩니다. ehlo 키워드는 모든 초기 연결 시도에서 EHLO 명령을 사용하도록 MTA에 지시합니다. noehlo 키워드는 모든 EHLO 명령 사용을 비활성화합니다. checkehlo 키워드는 문자열 “ESMTP”에 대해 원격 SMTP 서버가 반환하는 응답 배너를 테스트합니다. 이 문자열이 있는 경우 EHLO가 사용되고, 없는 경우 HELO가 사용됩니다. 기본 동작은 모든 초기 연결 시도에서 EHLO를 사용하는 것입니다. 배너 행에 문자열 “fire away”가 없는 경우에는 HELO가 사용됩니다. ehlo 및 checkehlo 키워드로부터 발생되는 동작 사이에 위치하는 이 기본 동작에 해당하는 키워드가 없습니다.
키워드: allowetrn, blocketrn, disableetrn, domainetrn, silentetrn, sendetrn, nosendetrn, novrfy
RFC 1985에 정의되어 있는 ETRN 명령은 SMTP 클라이언트와 서버가 상호 작용하여 서버에서 지정된 호스트로 보낼 메일 대기열 처리를 시작할 수 있도록 SMTP 서비스를 확장합니다.
SMTP 클라이언트는 ETRN을 사용하여 원격 SMTP 서버에서 SMTP 클라이언트에 보낼 메일 대기열의 처리를 시작하도록 요청할 수 있습니다. 즉, ETRN을 사용하면 원격 SMTP 시스템에서 수신하는 메일에 대해 원격 SMTP 시스템 “폴링”을 구현할 수 있습니다. 이 방법은 서로 일시적으로만 연결하는 시스템에 유용할 수 있습니다. 예를 들어, 전화 접속을 통해서만 인터넷에 연결하는 다른 사이트에 대해 보조 MX(Mail eXchange) 호스트로 설정되는 사이트가 있습니다. 이 명령을 사용하여 원격 전화 접속 서버의 메일 전달 요청을 허용합니다.
SMTP 클라이언트는 SMTP ETRN 명령줄에서 메일을 보낼 시스템의 이름(일반적으로 SMTP 클라이언트 시스템 자체 이름)을 지정합니다. 원격 SMTP 서버가 ETRN 명령을 지원하는 경우 해당 서버는 개별 프로세스를 트리거하여 명명된 시스템에 다시 연결하고 해당 명명된 시스템에 대해 전달 대기 중인 메일을 보냅니다.
allowetrn, blocketrn, domainetrn 및 silentetrn 키워드는 보내는 SMTP 클라이언트가 MTA에 MTA 대기열의 메일을 전달하도록 요청하는 ETRN 명령을 실행할 때 MTA 응답을 제어합니다.
기본적으로 MTA는 모든 ETRN 명령을 수락하려고 시도합니다. 즉, allowetrn 키워드가 사용됩니다. 채널 정의에 blocketrn 키워드를 포함하여 MTA에서 ETRN 명령을 수락하지 않도록 지정할 수 있습니다.
silentetrn 키워드를 포함하여 도메인과 일치하고 MTA에서 실행할 채널의 이름을 반향하지 않고 모든 ETRN 명령을 수락하도록 지정할 수 있습니다. domainetrn 키워드는 MTA가 도메인을 지정하는 ETRN 명령만 사용하도록 지정합니다. 또한, 도메인과 일치하고 MTA에서 실행할 채널의 이름을 에코하지 않도록 지정합니다.
disableetrn은 ETRN 명령을 전혀 지원하지 않습니다. ETRN은 SMTP 서버에서 지원되는 명령으로 광고되지 않습니다.
sendetrn 및 nosendetrn 채널 키워드는 MTA가 SMTP 연결을 시작할 때 ETRN 명령을 보내는지 여부를 제어합니다. 기본값은 nosendetrn이며 MTA가 ETRN 명령을 보내지 않음을 의미합니다. sendetrn 키워드는 원격 SMTP 서버가 ETRN을 지원할 경우 ETRN 명령을 보내도록 MTA에 지시합니다. sendetrn 키워드는 메일이 전달 시도를 받도록 요청하는 시스템 이름 앞에 입력해야 합니다.
키워드: domainvrfy, localvrfy, vrfyallow, vrfydefault, vrfyhide
VRFY 명령을 사용하면 SMTP 클라이언트가 SMTP 서버에 특정 아이디에 대한 메일이 있는지 확인하라는 요청을 서버에 보낼 수 있습니다. VRFY 명령은 RFC 821에 정의되어 있습니다.
서버는 사용자가 로컬 사용자인지 여부, 메일 전달 여부 등을 나타내는 응답을 보냅니다. 250 응답은 아이디가 로컬임을 나타내고, 251 응답은 아이디가 로컬이 아니지만 서버가 메일을 전달할 수 있음을 나타냅니다. 서버 응답에는 메일함 이름이 포함되어 있습니다.
정상적인 환경에서는 VRFY 명령을 SMTP 대화 상자의 일부로 실행할 이유가 없습니다. SMTP RCPT TO 명령은 VRFY 명령과 동일한 기능을 수행하고 해당 오류를 반환해야 합니다. RCPT TO에 주소를 받아들인 다음 나중에 바운스할 수 있는 서버가 존재하지만, 이러한 서버는 VRFY 명령의 일부로 보다 집중적인 검사를 수행합니다.
기본적으로 MTA는 VRFY 명령을 보내지 않습니다(novrfy 키워드 사용).
필요한 경우 채널 정의에 domainvrfy 또는 localvrfy 키워드를 포함하여 SMTP VRFY 명령을 실행하도록 MTA를 구성할 수 있습니다. domainvrfy 키워드는 전체 주소(user@host)를 인수로 갖는 VRFY 명령이 실행되게 합니다. localvrfy 키워드는 MTA에서 주소의 로컬 부분(user)만 사용하여 VRFY 명령이 실행되게 합니다.
vrfyallow, vrfydefault 및 vrfyhide 키워드는 보내는 SMTP 클라이언트가 SMTP VRFY 명령을 실행할 때 SMTP 서버의 응답을 제어합니다.
vrfyallow 키워드는 자세한 정보 응답을 실행하도록 MTA에 지시합니다. vrfydefault는 HIDE_VERIFY=1 채널 옵션이 지정되어 있지 않은 경우 자세한 정보 응답을 제공하도록 MTA에 지시합니다. vrfyhide 키워드는 모호한 응답만 생성하도록 MTA에 지시합니다. 이러한 키워드는 동일한 SMTP 서버를 통해 처리되는 모든 받는 TCP/IP 채널에 일반적으로 적용되는 HIDE_VERIFY 옵션과 달리 VRFY 응답을 채널 단위로 제어할 수 있습니다.
키워드: expnallow, expndisable, expndefault
expnallow는 DISABLE_EXPAND SMTP 채널 옵션을 사용하여 SMTP 서버 수준에서 사용 불가능으로 설정했더라도 EXPN을 허용합니다. expndisable은 EXPN을 무조건적으로 사용 불가능하게 합니다. expndefault는 SMTP 서버에 사용하도록 설정된 경우 EXPN을 허용합니다(기본값). 확장은 목록 단위로 비활성화할 수 있지만 서버 수준에서 비활성화하면 목록별 설정이 부적절하게 됩니다.
키워드: mailfromdnsverify, nomailfromdnsverify
받는 TCP/IP 채널에서 mailfromdnsverify를 설정하면 MTA가 DNS의 항목이 SMTP MAIL FROM 명령에 사용된 도메인에 있는지 확인하여 해당 항목이 없는 경우 메일을 거부합니다. 기본값인 nomailfromdnsverify는 확인이 수행되지 않음을 의미합니다. 반송 주소 도메인에 대해 DNS 확인을 수행하면 일부 유효한 메일이 거부될 수 있습니다. 예를 들어, 도메인 이름을 아직 등록하지 않은 합법적인 사이트에서 또는 DNS에 잘못된 정보가 있는 경우 거부됩니다. 이는 RFC 1123, Requirements for Internet Hosts에 명시되어 있는 전자 메일 수락 및 전달에 있어 관대함을 요구하는 조항에 위반됩니다. 그러나 몇몇 사이트에서는 존재하지 않는 도메인으로부터 위조된 전자 메일 주소로 UBE(Unsolicited Bulk Email)를 받는 경우 그러한 검사를 수행할 수 있습니다.
COM 및 ORG 최상위 도메인에서 DNS 와일드카드 항목이 소개되어 mailfromdnsverify가 별로 유용하지 않게 되었기 때문에 mailfromdnsverify 코드가 수정되었습니다. DNS가 하나 이상의 A 레코드를 반환하면 이러한 값은 새 MTA 옵션 BLOCKED_MAIL_FROM_IPS에 지정된 도메인 리터럴과 비교됩니다. 일치하는 값이 발견되면 도메인은 유효하지 않은 것으로 간주됩니다. 올바른 동작을 복원하기 위한 현재의 올바른 설정은 다음과 같습니다.
BLOCKED_MAIL_FROM_IPS=[64.94.110.11]
이 옵션의 기본값은 빈 문자열입니다.
키워드: charset7, charset8, charsetesc, sevenbit, eightbit, eightnegotiate, eightstrict
MIME 사양은 일반 텍스트 메일에 사용되는 문자 세트를 레이블링하는 기법을 제공합니다. 특히 charset= 매개 변수를 Content-type:의 헤더 행으로 지정할 수 있습니다. US-ASCII(기본값), ISO-8859-1, ISO-8859-2 등을 포함하여 다양한 문자 세트 이름이 MIME에 정의되어 있습니다.
일부 기존 시스템과 사용자 에이전트는 이러한 문자 세트 레이블 생성을 위한 기법을 제공하지 않기 때문에 일반 텍스트 메일이 제대로 레이블링되지 않을 수 있습니다. charset7, charset8 및 charsetesc 채널 키워드는 문자 세트 레이블링이 부족한 메일 헤더에 삽입할 문자 세트 이름을 지정할 수 있도록 채널 단위 기법을 제공합니다. 각 키워드에는 문자 세트 이름을 지정하는 단일 인수가 필요합니다. 이름의 유효성은 검사하지 않습니다. MTA 테이블 디렉토리에 있는 charsets.txt 문자 세트 정의 파일에 지정된 문자 세트에 대해서만 문자 세트 변환을 수행할 수 있습니다. 가능하면 이 파일에 정의된 이름을 사용해야 합니다.
charset7 문자 세트 이름은 메일에 7비트 문자만 포함되어 있는 경우에 사용되며, charset8 문자 세트 이름은 메일에 8비트 데이터가 있는 경우에 사용되고, charsetesc는 7비트 데이터만 포함하는 메일에 이스케이프 문자도 포함하게 되는 경우에 사용됩니다. 해당 키워드를 지정하지 않으면 Content-type: 헤더 행으로 어떤 문자 세트도 지정되지 않습니다.
또한, charset8 키워드는 8비트 문자는 무조건적으로 부적합한 메일 헤더에서 8비트 문자의 MIME 인코딩을 제어합니다. MTA는 일반적으로 charset8 값이 지정되어 있지 않은 경우 메일 헤더에 있는 (잘못된) 8비트 데이터를 UNKNOWN charset으로 레이블링하여 MIME 인코딩합니다.
이러한 문자 세트 사양은 기존 레이블을 대체하지 않습니다. 즉, 메일에 문자 세트 레이블이 이미 있거나 메일 유형이 텍스트가 아닌 경우에는 적용되지 않습니다. 이 문자 세트 사양은 MTA 로컬 채널을 다음과 같이 레이블링하는 데 적합합니다.
l ... charset7 US-ASCII charset8 ISO-8859-1 ... hostname |
메일에 Content-type 헤더가 없는 경우에 추가됩니다. 또한, 이 키워드는 MIME-version: 헤더 행을 추가합니다(없는 경우).
charsetesc 키워드는 이스케이프 문자를 포함하는 일본어 또는 한국어 문자 세트를 사용하는 레이블링되지 않은 메일을 받는 채널에서 특히 유용합니다.
일부 전송에서는 127(십진수)보다 더 큰 서수 값을 갖는 문자의 사용을 제한합니다. 일부 SMTP 서버는 높은 비트를 제거하기 때문에 이 8비트 범위에 속하는 문자를 사용하는 메일을 제대로 해석하지 못합니다.
Messaging Server는 문제가 있는 8비트 문자가 메일에 직접 표시되지 않도록 해당 메일을 자동으로 인코딩하는 기능을 제공합니다. 이 인코딩은 sevenbit 키워드를 지정하여 지정된 채널의 대기열에 포함된 모든 메일에 적용할 수 있습니다. 이러한 제한이 없는 경우 채널에 eightbit 표시를 해야 합니다.
“원격 SMTP 서버가 8비트를 허용하는 SMTP 확장을 지원한다고 명시하지 않은 경우” SMTP 프로토콜에서 8비트를 사용할 수 없습니다. 확장 SMTP와 같은 일부 전송에서는 8비트 문자를 전송할 수 있는지 확인할 수 있도록 협상을 지원하는 경우도 있습니다. 따라서 협상에 실패할 경우 eightnegotiate 키워드를 사용하여 메일을 인코딩하도록 채널에 지시하는 것이 좋습니다. 이 키워드는 모든 채널의 기본값입니다. 이 경우 협상을 지원하지 않는 채널에서는 8비트 데이터를 전송할 수 없는 것으로 간주합니다.
eightstrict 키워드는 협상되지 않은 8비트 데이터가 포함된 받는 메일을 거부하도록 Messaging Server에 지시합니다.
키워드: streaming
일부 메일 프로토콜에서는 스트리밍 작업을 지원합니다. 이것은 MTA가 한 번에 여러 작업에 대한 명령을 실행하고 각 작업에 대한 응답이 일괄적으로 도착할 때까지 기다릴 수 있음을 의미합니다. streaming 키워드는 채널과 연결된 프로토콜에서 사용되는 프로토콜 스트리밍의 범위를 제어합니다. 이 키워드에는 정수 매개 변수가 필요합니다. 매개 변수를 해석하는 방법은 사용 중인 프로토콜에 따라 다릅니다.
정상적인 환경에서는 SMTP 파이프라인 확장을 사용하여 사용 가능한 스트리밍 범위를 협상합니다. 따라서, 정상적인 환경에서는 이 키워드를 절대 사용하지 마십시오.
사용 가능한 스트리밍 값의 범위는 0부터 3까지입니다. 값 0은 스트리밍을 지정하지 않고, 값 1은 RCPT TO 명령 그룹을 스트리밍하고, 값 2는 MAIL FROM/RCPT TO를 스트리밍하고, 값 3은 HELO/MAIL FROM/RCPT TO 또는 RSET/MAIL FROM/RCPT TO 스트리밍을 사용합니다. 기본값은 0입니다.
서버에서 TCP/IP 연결 및 주소 조회를 처리하는 방법에 대한 정보를 지정할 수 있습니다. 이 절은 다음 내용으로 구성되어 있습니다.
표 12–22는 이 절에서 설명하는 TCP/IP 연결 및 DNS 조회 키워드를 보여줍니다.
표 12–22 TCP/IP 연결 및 DNS 조회 키워드
채널 키워드 |
설명 |
---|---|
포트 선택 및 인터페이스 주소 |
SMTP 연결에 대한 기본 포트 번호 및 인터페이스 주소를 지정합니다. |
port |
SMTP 연결에 대한 기본 포트 번호를 지정합니다. 표준 포트는 25입니다. |
interfaceaddress |
지정된 TCP/IP 인터페이스 주소에 바인딩합니다. |
캐시 키워드 |
연결 정보를 캐시하는 방법을 지정합니다. |
cacheeverything |
모든 연결 정보를 캐시합니다. |
cachefailures |
연결 실패 정보만 캐시합니다. |
cachesuccesses |
연결 성공 정보만 캐시합니다. |
nocache |
연결 정보를 캐시하지 않습니다. |
역방향 DNS 조회 |
받는 SMTP 연결에서 역방향 DNS 조회를 처리하는 방법을 지정합니다. |
forwardcheckdelete |
역방향 DNS 조회를 수행한 경우 반환된 이름에 대한 정방향 조회를 수행하여 반환된 IP 번호가 원본과 일치하는지 확인합니다. 원본과 일치하지 않는 경우 이름을 삭제하고 IP 주소를 사용합니다. |
forwardchecknone |
DNS 역방향 조회 후 정방향 조회를 수행하지 않습니다. |
forwardchecktag |
역방향 DNS 조회를 수행한 경우 반환된 이름에 대한 정방향 조회를 수행하여 반환된 IP 번호가 원본과 일치하는지 확인합니다. 원본과 일치하지 않는 경우 이름에 * 태그를 붙입니다. |
IDENT 조회/DNS 역방향 조회 |
받는 SMTP 연결에서 IDENT 조회 및 DNS 역방향 조회를 처리하는 방법을 지정합니다. |
identnone |
IDENT 조회를 수행하지 않고 IP를 호스트 이름으로 변환하고 호스트 이름과 IP 주소를 모두 Received: 헤더에 포함합니다. |
identnonelimited |
IDENT 조회를 수행하지 않고 IP를 호스트 이름으로 변환하지만 채널 전환 중에 호스트 이름을 사용하지 않고 호스트 이름과 IP 주소를 모두 Received: 헤더에 포함합니다. |
identnonenumeric |
IDENT 조회를 수행하지 않거나 IP를 호스트 이름으로 변환하지 않습니다. |
identnonesymbolic |
IDENT 조회를 수행하지 않고 IP를 호스트 이름으로 변환하고 호스트 이름만 Received: 헤더에 포함합니다. |
identtcp |
받는 SMTP 연결에서 IDENT 조회를 수행하고 IP를 호스트 이름으로 변환하고 호스트 이름과 IP 주소를 모두 Received: 헤더에 포함합니다. |
identtcplimited |
받는 SMTP 연결에 IDENT 조회를 수행하고 IP를 호스트 이름으로 변환하지만 채널 전환 중에 호스트 이름을 사용하지 않습니다. 호스트 이름과 IP 주소를 모두 Received: 헤더에 포함합니다. |
indenttcpnumeric |
받는 SMTP 연결에서 IDENT 조회를 수행하지만 IP를 호스트 이름으로 변환하지 않습니다. |
identtcpsymbolic |
받는 SMTP 연결에서 IDENT 조회를 수행하고 IP를 호스트 이름으로 변환하고 호스트 이름만 Received: 헤더에 포함합니다. |
MX 레코드 지원 및 TCP/IP 이름 서버 |
채널에서 MX 레코드 조회를 지원하는지 여부와 지원 방법을 지정합니다. |
mx |
TCP/IP 네트워크 및 소프트웨어가 MX 레코드 조회를 지원합니다. |
nomx |
TCP/IP 네트워크가 MX 조회를 지원하지 않습니다. |
defaultmx |
채널이 네트워크에서 MX 조회를 수행할지 여부를 결정합니다. |
randommx |
MX 조회를 수행하고 반환된 항목을 같은 우선 순위로 임의화합니다. |
nonrandomemx |
MX 조회를 수행하고 반환된 항목을 같은 우선 순위로 임의화하지 않습니다. |
nameservers |
TCP/IP 스택의 자체 이름 서버 선택을 참조하는 대신 참조할 이름 서버 목록을 지정합니다. nameservers에는 이름 서버에 대한 공백으로 구분된 IP 주소 목록이 필요합니다. |
defaultnameservers |
TCP/IP 스택의 이름 서버 선택을 참조합니다. |
lastresort |
마지막 호스트를 지정합니다. |
전환 키워드 |
받는 메일에 대한 대체 채널 선택을 제어합니다. |
allowswitchchannel |
switchchannel 채널에서 이 채널로 전환을 허용합니다. |
noswitchchannel |
서버 채널을 유지합니다. 원본 호스트와 연결된 채널을 전환하지 않고, 채널 전환을 허용하지 않습니다. |
switchchannel |
서버 채널에서 원본 호스트와 연결된 채널로 전환합니다. |
tlsswitchchannel |
TLS 협상이 성공하면 다른 채널로 전환합니다. |
saslswitchchannel |
SASL 인증이 성공할 경우 다른 채널로 전환합니다. |
대상 호스트 선택 및 메일 복사본 저장소 |
대상 호스트 시스템과 메일 복사본의 저장 방법을 지정합니다. |
daemon |
봉투 주소에 관계 없이 특정 호스트 시스템에 연결합니다. |
single |
채널의 각 대상 주소에 대해 별도의 메일 복사본을 만들도록 지정합니다. |
single_sys |
사용된 각 대상 시스템에 대해 단일 메일 복사본을 만듭니다. |
키워드: port, interfaceaddress
SMTP over TCP/IP 채널은 메일을 보낼 때 일반적으로 포트 25에 연결합니다. port 키워드를 사용하여 비표준 포트에 연결하도록 SMTP over TCP/IP 채널에 지시할 수 있습니다. 이 키워드는 SMTP 연결을 위해 MTA가 수신하는 포트를 제어하는 PORT 디스패처 옵션을 보완합니다.
interfaceaddress 키워드는 TCP/IP 채널이 아웃바운드 연결에 대한 소스 주소로 바인딩하는 주소를 제어합니다. 즉, 여러 인터페이스 주소를 갖는 시스템에서 이 키워드는 MTA가 SMTP 메일을 보낼 때 소스 IP 주소로 사용하는 주소를 제어합니다. 이 키워드는 받는 연결 및 메일을 받기 위해 TCP/IP 채널이 수신하는 인터페이스 주소를 제어하는 INTERFACE_ADDRESS 디스패처 옵션을 보완합니다.
키워드: cacheeverything, nocache, cachefailures, cachesuccesses
SMTP 프로토콜을 사용하는 채널은 이전 연결 시도 내역이 들어 있는 캐시를 유지 관리합니다. 이 캐시를 사용하면 액세스할 수 없는 호스트에 여러 번 다시 연결할 필요가 없으므로 시간이 낭비되거나 다른 메일이 지연되지 않습니다. 캐시는 프로세스 단위 캐시이며 아웃바운드 SMTP 전달 채널을 한 번 실행하는 동안에만 지속됩니다.
캐시는 일반적으로 연결 성공과 연결 실패를 모두 기록합니다. 성공한 연결 시도는 후속 실패를 오프셋하기 위해 기록됩니다. 그러나, 이전에는 성공했으나 지금은 실패한 호스트에서는 연결을 시도한 적이 없거나 이전에 실패했던 호스트에서처럼 다른 연결을 시도하기 이전에 지연 기간이 보장되지 않습니다.
MTA에 사용되는 캐싱 전략이 모든 상황에 적합한 것은 아닙니다. 따라서 MTA 캐시 조정을 위해 채널 키워드가 제공됩니다.
cacheeverything 키워드는 모든 형식의 캐싱을 사용하며 기본값입니다. nocache 키워드는 모든 캐싱을 사용하지 않습니다.
cachefailures 키워드는 연결 실패 캐싱만 사용하며 cacheeverything 키워드의 경우보다 재시도가 제한됩니다. 마지막으로 cachesuccesses는 연결 성공만 캐시합니다. 이 마지막 키워드는 SMTP 채널의 nocache 키워드와 효과가 동일합니다.
키워드: forwardchecknone, forwardchecktag, forwardcheckdelete
forwardchecknone, forwardchecktag 및 forwardcheckdelete 채널 키워드는 역방향 DNS 조회 수행 효과를 수정할 수 있습니다. 이러한 키워드는 MTA가 DNS 역방향 조회를 사용하여 찾은 IP 이름에 대해 정방향 조회를 수행하는지 여부를 제어할 수 있으며, 그러한 정방향 조회를 요청받을 경우 IP 이름 정방향 조회가 연결의 원본 IP 번호와 일치하지 않을 때 MTA에서 수행할 작업을 지정합니다.
forwardchecknone 키워드는 기본값이며 정방향 조회가 수행되지 않음을 의미합니다. forwardchecktag 키워드는 각 역방향 조회 이후에 정방향 조회를 수행하고, 정방향 조회를 사용하여 찾은 IP 번호가 원본 연결의 IP 번호와 일치하지 않을 경우 해당 IP 이름에 별표(*) 태그를 붙이도록 MTA에 지시합니다. forwardcheckdelete 키워드는 각 역방향 조회 이후에 정방향 조회를 수행하고 해당 이름에 대한 정방향 조회가 원본 연결 IP 주소와 일치하지 않는 경우 역방향 조회에서 반환된 이름을 무시(삭제)하도록 MTA에 지시합니다. 이 경우 MTA는 원본 IP 주소를 대신 사용합니다.
순방향 조회가 원본 IP 주소와 일치하지 않는 것이 정상인 사이트가 있습니다. 이러한 사이트에서는 여러 IP 주소에 보다 “일반적인” IP 이름을 사용합니다.
키워드: identnone, identnonelimited, identtnonnumeric, identnonesymbolic, identtcp , identtcpnumeric, identtcpsymbolic, identtcplimited
IDENT 키워드는 MTA에서 IDENT 프로토콜을 사용하여 연결 및 조회를 처리하는 방법을 제어합니다. IDENT 프로토콜은 RFC 1413에 설명되어 있습니다.
identtcp, identtcpsymbolic 및 identtcpnumeric 키워드는 IDENT 프로토콜을 사용하여 연결 및 조회를 수행하도록 MTA에 지시합니다. IDENT 프로토콜에서 가져온 정보(일반적으로 SMTP에 연결한 아이디)는 메일의 Received: 헤더에 다음과 같이 삽입됩니다.
identtcp는 받는 IP 번호에 해당하는 호스트 이름(DNS 역방향 조회에서 보고됨)과 IP 번호 자체를 삽입합니다.
identtcpsymbolic은 받는 IP 번호에 해당하는 호스트 이름(DNS 역방향 조회에서 보고됨)을 삽입합니다. IP 번호 자체는 Received:헤더에 포함되지 않습니다.
identtcpnumeric은 실제 받는 IP 번호를 삽입합니다. IP 번호에 대한 DNS 역방향 조회는 수행되지 않습니다.
identtcp, identtcpsymbolic 또는 identtcpnumeric에 의한 IDENT 조회가 유효하려면 원격 시스템에서 IDENT 서버를 실행해야 합니다.
IDENT 쿼리를 시도하면 성능이 감소될 수 있음에 유의하십시오. 점차적으로 라우터는 자신이 구성하지 않은 포트에 대해 시도된 연결에 “블랙홀”을 생성합니다. IDENT 쿼리에서 이러한 현상이 발생할 경우 MTA는 연결 시간 초과(TCP/IP 스택 제어 시간 초과, 일반적으로 1분 또는 2분)가 발생할 때까지는 다시 수신하지 않습니다.
identtcp, indenttcplimited 또는 identtcpsymbolic을 identtcpnumeric과 비교하는 경우 또 다른 성능 요소가 있습니다. identtcp, identtcplimited 또는 identtcpsymbolic으로 호출되는 DNS 역방향 조회는 사용자에게 보다 친숙한 호스트 이름을 가져오기 위해 추가 오버헤드를 발생시킵니다.
identnone 키워드는 IDENT 조회를 사용하지 않지만 IP를 호스트 이름으로 변환하도록 지정하고 IP 번호와 호스트 이름 모두 메일의 Received: 헤더에 포함합니다.
identnonesymbolic 키워드는 IDENT 조회를 사용하지 않지만 IP를 호스트 이름으로 변환하며 호스트 이름만 메일의 Received: 헤더에 포함합니다.
identnonenumeric 키워드는 이 IDENT 조회를 사용하지 않고 일반 DNS 역방향 조회에서 IP 번호를 호스트 이름으로 변환하지 못하게 합니다. 또한, Received: 헤더에 포함합니다. 기본값입니다.
identtcplimited 및 identnonelimited 키워드는 IDENT 조회, 역방향 DNS 조회 및 Received: 헤더에 표시되는 정보에 있어서 각각 identtcp 및 identnone과 동일한 효과를 가집니다. identtcplimited 또는 identnonelimited에서는 DNS 역방향 조회의 호스트 이름 확인 성공 여부에 관계 없이 switchchannel 키워드의 사용에 따른 채널 전환의 기초로 항상 IP 문자 주소를 사용한다는 점만 다릅니다.
키워드: mx, nomx, defaultmx , randommx, nonrandommx
TCP/IP 네트워크에서 MX(메일 전달) 레코드 사용을 지원하는 경우도 있고 지원하지 않는 경우도 있습니다. 일부 TCP/IP 채널 프로그램에서는 MTA 시스템이 연결된 네트워크에서 MX 레코드를 제공하지 않는 경우 MX 레코드를 사용하지 않도록 구성할 수 있습니다. mx, nomx, defaultmx, randommx, nonrandommx 키워드는 MX 레코드 지원을 제어합니다.
randommx 키워드는 MX 조회를 수행하고 우선 순위가 동일한 MX 레코드 값을 임의의 순서로 처리하도록 지정합니다. nonrandommx 키워드는 MX 조회를 수행하고 우선 순위가 동일한 MX 레코드 값을 받은 순서대로 처리하도록 지정합니다.
mx 키워드는 nonrandommx 키워드에 해당하며 이후의 릴리스에서는 randommx에 해당하는 키워드로 변경될 수 있습니다. nomx 키워드는 MX 조회를 사용하지 않습니다. defaultmx 키워드는 네트워크에서 MX 레코드를 지원할 경우 mx를 사용하도록 지정합니다. defaultmx 키워드는 MX 조회를 지원하는 채널의 기본값입니다.
키워드: nameservers, defaultnameservers
이름 서버 조회를 수행할 경우 TCP/IP 스택의 자체 이름 서버 선택을 참조하는 대신 nameservers 채널 키워드를 사용하여 이름 서버 목록을 지정할 수 있습니다. nameservers 키워드에는 다음 예에 표시된 것처럼 이름 서버에 대한 공백으로 구분된 IP 주소 목록이 필요합니다.
nameservers 1.2.3.1 1.2.3.2
기본값인 defaultnameservers는 TCP/IP 스택의 자체 이름 서버 선택을 사용함을 의미합니다.
UNIX에서 이름 서버 조회를 수행하지 않게 하려면 nsswitch.conf 파일을 수정하면 됩니다. NT에서는 TCP/IP 구성을 수정하십시오.
키워드: lastresort
lastresort 키워드는 다른 모든 연결 시도가 실패할 경우에 연결할 호스트를 지정하는 데 사용됩니다. 실제로 이 키워드는 마지막 MX 레코드 역할을 합니다. 또한 SMTP 채널에서만 유효합니다.
이 키워드에는 “마지막 시스템”의 이름을 지정하는 단일 매개 변수가 필요합니다. 예를 들면 다음과 같습니다.
tcp_local single_sys smtp mx lastresort mailhub.siroe.com TCP-DAEMON
키워드: switchchannel, allowswitchchannel, noswitchchannel. SMTP 인증, SASL 및 TLS의 saslswitchchannel 및 전송 계층 보안의 tlsswitchchannel을 참조하십시오.
switchchannel, allowswitchchannel, noswitchchannel 키워드는 받는 메일을 위한 대체 채널 선택을 제어합니다.
MTA는 원격 시스템으로부터 받는 연결을 수락할 때 연결에 사용할 채널을 선택해야 합니다. 일반적으로 이 결정은 사용된 전송을 기반으로 합니다. 예를 들어, 받는 SMTP over TCP/IP 연결은 tcp_local 채널에 자동으로 연결됩니다.
서로 다른 특성을 갖는 여러 보내는 채널을 사용하여 동일한 전송을 통해 서로 다른 여러 시스템을 처리할 경우에는 이 규칙이 적용되지 않습니다. 이러한 경우 받는 연결은 보내는 연결과 동일한 채널에 연결되지 않기 때문에 해당 채널 특성이 원격 시스템과 연결되지 않습니다.
switchchannel 키워드를 사용하면 이 문제를 해결할 수 있습니다. 서버가 사용하는 초기 채널에서 switchchannel을 지정하면 연결(원본) 호스트의 IP 주소가 채널 테이블에 일치되고 그에 따라 원본 채널이 적절하게 변경됩니다. IP 주소가 일치하지 않거나 원래의 기본 받는 채널에 대한 일치가 발견되는 경우 MTA는 DNS 역방향 조회를 통해 찾은 호스트 이름을 사용하여 선택적으로 일치를 시도할 수 있습니다. 소스 채널이 switchchannel 또는 allowswitchchannel(기본값) 표시가 있는 채널로 변경될 수 있습니다. noswitchchannel 키워드는 채널 전환이 수행되지 않음을 지정합니다.
서버가 연결하는 채널이 아닌 다른 채널에 지정한 switchchannel 키워드는 기본적으로 적용되지 않습니다. 현재는 switchchannel 키워드가 SMTP 채널에만 적용되며 switchchannel을 적용할 수 있는 다른 채널이 없습니다.
키워드: daemon, single, single_sys
daemon 키워드의 해석과 사용은 적용되는 채널의 유형에 따라 다릅니다.
daemon 키워드는 SMTP 채널에서 대상 호스트 선택을 제어하는 데 사용됩니다.
일반적으로 채널은 처리할 메일의 봉투 주소에 나열되는 모든 호스트에 연결됩니다. daemon 키워드는 봉투 주소에 관계 없이 특정 원격 시스템(일반적으로 방화벽 또는 메일 허브 시스템)에 대신 연결하도록 채널에 지시하는 데 사용됩니다. 실제 원격 시스템 이름은 다음 예에 표시된 것처럼 daemon 키워드 바로 뒤에 표시되어야 합니다.
tcp_firewall smtp mx daemon firewall.acme.com TCP-DAEMON
daemon 키워드 뒤의 인수가 정규화된 도메인 이름이 아닌 경우 해당 인수가 무시되고 채널이 해당 채널의 공식 호스트에 연결됩니다. 공식 호스트는 채널과 연관된 정규화된 호스트 이름이며 세 개 행 채널 블록의 두 번째 행에서 지정할 수 있습니다.
tcp_firewall smtp mx daemon router firewall.acme.com TCP-DAEMON
또한 공식 호스트를 두 개 행 채널 블록에서 TCP-DAEMON 뒤에 지정하여 아웃바운드 연결 자체를 특정 호스트로 식별하게 할 수 있습니다.
tcp_firewall smtp mx daemon router TCP-DAEMON firewall.acme.com
방화벽 또는 게이트웨이 시스템 이름을 공식 호스트 이름으로 지정할 경우 다음 예에 표시된 것처럼 daemon 키워드에 지정된 인수가 일반적으로 라우터로 지정됩니다.
tcp_firewall smtp mx daemon router firewall.acme.com TCP-DAEMON
기타 관련 키워드로는 single 및 single_sys가 있습니다. single 키워드는 채널의 각 대상 주소에 대해 별도의 메일 복사본을 만들도록 지정합니다. single_sys 키워드는 사용된 각 대상 시스템에 대해 단일 메일 복사본을 만듭니다. 사용된 키워드에 관계 없이 메일이 대기열에 있는 각 채널에 대해 해당 메일 복사본을 하나 이상 만듭니다.
키워드: maysaslserver, mustsaslserver, nosasl, nosaslserver, saslswitchchannel, nosaslswitchchannel
Messaging Server가 SASL(Simple Authentication and Security Layer)을 사용한 SMTP 서버 인증을 지원하는지 여부를 제어할 수 있습니다. SASL은 RFC 2222에 정의되어 있습니다. SASL, SMTP 인증 및 보안에 대한 자세한 내용은 19 장, 보안 및 액세스 제어 구성 을 참조하십시오.
maysaslserver, mustsaslserver, nosasl, nosaslserver, switchchannel 및 saslswitchchannel 채널 키워드는 TCP/IP 채널과 같은 SMTP 채널이 SMTP 프로토콜에서 SASL(SMTP AUTH)을 사용하도록 구성하는 데 사용됩니다.
nosasl이 기본값이며 SASL 인증이 허용 또는 시도되지 않음을 의미합니다. 또한, SASL 인증이 허용되지 않음을 의미하는 nosaslserver를 포함합니다. maysaslserver를 지정하면 SMTP 서버에서 클라이언트가 SASL 인증 사용을 시도하도록 허용합니다. mustsaslserver를 지정하면 SMTP 서버에서 클라이언트가 SASL 인증을 사용하려고 시도하지만 SMTP 서버는 원격 클라이언트가 성공적으로 인증되지 않는 경우 메일을 수락하지 않습니다.
saslswitchchannel을 사용하면 클라이언트가 SASL을 성공적으로 사용할 경우에 받는 연결이 지정한 채널로 전환되게 합니다. 전환할 채널을 지정하는 필수 값을 사용합니다.
authrewrite 채널 키워드 및 관련 AUTH_REWRITE 매핑 테이블을 사용하면 인증 작업에서 얻은 주소 지정 정보를 사용하여 헤더 및 봉투 주소를 수정할 수 있습니다. 특히 인증된 전자 메일 주소를 제공하도록 SASL 인증을 구성할 수 있습니다. 일반적으로 SMTP AUTH 정보가 사용되지만 이 정보는 FROM_ACCESS 매핑을 통해 대체될 수 있습니다. authrewrite 키워드는 표 12–23에 따라 필수 비트 값을 가집니다.
표 12–23 authrewrite 비트 값
비트 |
값 |
설명 |
---|---|---|
0 |
1 |
아무것도 변경하지 않습니다(기본값). |
1 |
2 |
인증 작업에서 제공된 주소를 포함하는 Sender: 또는 Resent-sender: 헤더 필드를 추가합니다. 다른 resent- 필드가 있는 경우 Resent- 변형이 사용됩니다. |
2 |
4 |
AUTH 메일 발송자를 포함하는 Sender: 헤더 필드를 추가합니다. |
3 |
8 |
다음과 같은 형태의 AUTH_REWRITE라는 매핑 테이블에서 검사를 생성합니다. mail-from|sender|from|auth-sender 여기서 mail-from은 봉투의 From: 주소이고 sender는 Sender: 또는 Resent-sender: 헤더 필드의 주소이며 from은 From: 또는 Resent-From: 헤더 필드의 주소이고 auth-sender는 인증 작업에서 제공된 주소입니다. 결과는 AUTH_REWRITE 매핑을 통해 실행됩니다. 매핑은 세로 막대(|)로 구분된 항목 목록을 반환합니다. 이러한 항목은 다음 플래그를 설정하여 순서대로 사용됩니다. $J $K 메일의 봉투 From: 주소를 바꿉니다. $Y $T 적절한 Sender: 또는 Resent-sender: 헤더 필드를 추가합니다. $N 메일을 거부합니다. 결과를 매핑하면 오류 메시지의 텍스트가 제공됩니다. 텍스트가 제공되지 않으면 invalid originator address used라는 오류 메시지가 표시됩니다. $Z 적절한 From: 또는 Resent-from: 헤더 필드를 추가합니다. (일반적으로 From: 필드를 대체하는 것은 아주 나쁜 방법입니다.) 헤더에 다른 Resent- 필드가 있는 경우 Resent- 변형이 사용됩니다. |
4 |
16 |
인증에서 인증된 주소를 제공하지 않은 경우라도 AUTH_REWRITE 매핑을 적용합니다. 비트가 지워지면 인증된 주소를 사용할 수 있을 경우 매핑만 적용됩니다. |
5 |
32 |
AUTH_REWRITE 매핑 검사의 시작 부분에 소스 채널을 포함합니다. 이 부분과 남은 정보는 |로 구분됩니다. 비트가 지워지면 채널이 포함되지 않습니다. |
$Z 플래그는 봉투와 헤더 주소를 수정하기 위해 합법적으로 사용하는 경우는 적으므로 높은 수준으로 제한되어야 합니다.
TCP/IP 채널에서 msexchange 채널 키워드를 사용하여 이 채널이 Microsoft Exchange 게이트웨이 및 클라이언트와 통신하는 채널임을 MTA에 알려줄 수 있습니다. 이 채널 키워드를 maysaslserver 또는 mustsaslserver 키워드를 통해 SASL을 사용하는 받는 TCP/IP 채널에 넣을 경우 MTA의 SMTP 서버가 “잘못된” 형식(새로 수정된 AUTH 사양 대신 올바른 ESMTP 사용과 호환되지 않는 원본의 ESMTP AUTH 사양을 기반으로 함)을 사용하여 AUTH를 광고하게 합니다. 예를 들어, 일부 Microsoft Exchange 클라이언트는 올바른 AUTH 형식을 인식하지 않고 잘못된 AUTH 형식만 인식합니다.
또한, msexchange 채널 키워드는 끊어진 TLS 명령을 광고 및 인식하게 합니다.
기본값은 nomsexchange입니다.
키워드: maytls, maytlsclient, maytlsserver, musttls, musttlsclient, musttlsserver, notls, notlsclient, notlsserver, tlsswitchchannel
maytls, maytlsclient, maytlsserver, musttls, musttlsclient, musttlsserver, notls, notlsclient, notlsserver 및 tlsswitchchannel 채널 키워드는 TCP/IP 채널과 같은 SMTP 기반 채널에 의한 SMTP 프로토콜에서 TLS 사용을 구성하는 데 사용됩니다.
기본값은 notls이고 TLS가 허용 또는 시도되지 않음을 의미합니다. 보내는 연결에서 MTA SMTP 클라이언트가 TLS 사용을 시도하지 않음(보내는 연결 중에 STARTTLS 명령 실행 안 됨)을 의미하는 notlsclient 키워드와 받는 연결에서 MTA SMTP 서버의 TLS 사용이 허용되지 않음(SMTP 서버에서 STARTTLS 확장을 광고하지 않고 명령 자체도 허용 안 됨)을 의미하는 notlsserver 키워드를 포함합니다.
maytls를 지정하면 MTA가 받는 연결에 TLS를 제공하고 보내는 연결에서 TLS를 시도합니다. TLS를 지원하는 SMTP 서버에 메일을 보낼 때 MTA SMTP 클라이언트가 TLS 사용을 시도함을 의미하는 maytlsclient 키워드와 MTA SMTP 서버가 STARTTLS 확장 지원을 광고하고 메일을 받을 때 TLS 사용을 허용함을 의미하는 maytlsserver 키워드를 포함합니다.
mailsrv 계정에서 파일에 액세스할 수 있도록 인증서의 보호/소유권을 설정해야 합니다.
mailsrv 계정에서 인증서가 저장되는 디렉토리 내의 파일에 액세스할 수 있도록 해당 디렉토리에서 보호/소유권을 설정해야 합니다.
musttls를 지정하면 MTA가 보내는 연결과 받는 연결 모두에서 TLS 사용을 주장하게 되므로 TLS 사용 협상에 실패할 경우 원격 시스템과 전자 메일을 교환할 수 없습니다. MTA SMTP 클라이언트가 메일을 보낼 때 TLS 사용을 주장하고 TLS 사용 협상(MTA가 STARTTLS 명령을 실행하고 해당 명령이 성공해야 함)에 실패한 SMTP 서버에 메일을 보내지 않음을 의미하는 musttlsclient를 포함합니다. 또한, MTA SMTP 서버가 STARTTLS 확장 지원을 광고하고 메일을 받을 때 TLS 사용을 강제하고 TLS 사용 협상에 실패한 클라이언트에서 보낸 메일을 받지 않음을 의미하는 musttlsserver를 포함합니다.
tlsswitchchannel 키워드를 사용하면 클라이언트가 SASL 협상에 성공할 경우 받는 연결이 지정한 채널로 전환됩니다. 전환할 채널을 지정하는 필수 값을 사용합니다.
서버가 특정 기준에 따라 메일 전달을 시도하도록 구성할 수 있습니다. 또한, 서비스 작업 처리 제한, 새 SMTP 채널 스레드 생성 시기 등과 같은 작업 처리 매개 변수를 지정할 수 있습니다. 이 절은 다음 내용으로 구성되어 있습니다.
메일 처리 및 전달에 대한 개념 정보는 표 12–24를 참조하십시오.
메일 처리 및 전달 구성은 이 절에서 설명하는 키워드를 요약해서 보여 줍니다.
표 12–24 메일 처리 및 전달 키워드
키워드 |
정의 |
---|---|
즉시 전달 |
메일 즉시 전달에 대한 사양을 정의합니다. |
높음, 중간 및 낮음 우선 순위 메일을 제출하면 바로 전달을 시작합니다. |
|
채널 방향 |
채널을 사용하는 프로그램 유형을 지정합니다. |
bidirectional |
마스터 및 슬레이브 프로그램에서 사용되는 채널입니다. |
master |
마스터 프로그램에서 사용되는 채널(master)입니다. |
slave |
슬레이브 프로그램에서 사용되는 채널(slave)입니다. |
지연 전달 |
지연 작업 전달에 대한 사양을 정의합니다. |
지연 메일의 재전달 시도 간격을 지정합니다. normalbackoff, nonurgentbackoff, urgentbackoff에 의해 대체될 수 있습니다. |
|
Deferred-delivery: 헤더 행을 수락하고 인식합니다. |
|
기본값입니다. Deferred-delivery: 헤더 행을 수락하지 않음을 지정합니다. |
|
낮음 우선 순위 메일의 재전달 시도 간격입니다. |
|
중간 우선 순위 메일의 재전달 시도 간격입니다. |
|
높음 우선 순위 메일의 재전달 시도 간격입니다. |
|
크기 기반 메일 우선 순위 |
메일 크기를 기반으로 메일의 우선 순위를 정의합니다. |
이 크기 이상인 메일의 우선 순위를 낮음(두 번째 우선 순위 클래스) 이하로 지정합니다. 즉, 해당 메일은 항상 다음 정기 작업이 처리되는 동안 대기한 후 처리됩니다. |
|
이 크기 이상인 메일의 우선 순위를 낮음으로 지정합니다. |
|
이 크기 이상인 메일의 우선 순위를 중간으로 지정합니다. |
|
채널 실행 작업의 처리 풀 |
작업 우선 순위와 지연 수준이 서로 다른 메일 처리를 위한 풀을 지정합니다. |
채널이 실행되는 풀을 지정합니다. |
|
채널이 실행되기 이전의 시간 지연을 지정합니다. |
|
서비스 작업 제한 |
서비스 작업 수와 작업당 처리할 최대 메일 파일 수를 지정합니다. |
채널에 대해 동시에 실행될 수 있는 최대 작업 수를 지정합니다. |
|
단일 작업에서 처리할 대기열 항목 수를 지정합니다. |
|
SMTP 채널 스레드 | |
다중 스레드 SMTP 클라이언트를 사용하여 새 스레드를 트리거하는 메일 수입니다. |
|
다중 주소 확장 |
수신자가 여러 명인 메일의 처리를 정의합니다. |
주소 수가 이 제한을 초과할 경우 받는 메일을 “오프라인”으로 처리합니다. |
|
expandlimit 적용으로 인해 지연된 확장을 수행할 채널을 지정합니다. |
|
주소 수가 이 제한을 초과할 경우 받는 메일을 보관합니다. |
|
트랜잭션 제한 |
연결 트랜잭션 제한을 지정합니다. |
transactionlimit |
연결당 허용되는 메일 수를 제한합니다. |
전달할 수 없는 메일 알림 |
전달할 수 없는 메일 알림을 보내는 시기를 지정합니다. |
알림을 보낸 후 메일이 반환되기 이전에 경과할 수 있는 시간을 지정합니다. |
|
우선 순위가 낮은 메일에 대해 알림을 보내고 메일을 반환하기 전에 경과할 수 있는 시간을 지정합니다. |
|
우선 순위가 중간인 메일에 대해 알림을 보내고 메일을 반환하기 전에 경과할 수 있는 시간을 지정합니다. |
|
우선 순위가 높은 메일에 대해 알림을 보내고 메일을 반환하기 전에 경과할 수 있는 시간을 지정합니다. |
키워드: master, slave, bidirectional
세 키워드를 사용하여 채널이 마스터 프로그램(master), 슬레이브 프로그램(slave) 또는 두 프로그램 모두(bidirectional )에서 사용되는지 여부를 지정합니다. 이 키워드를 지정하지 않을 경우 기본값은 bidirectional입니다. 이러한 키워드는 메일을 채널의 대기열에 넣을 때 MTA가 전달 작업을 시작하는지 여부를 지정합니다.
이러한 키워드의 사용은 해당 채널 프로그램의 기본 특성을 반영합니다. MTA가 지원하는 다양한 채널 설명은 이러한 키워드를 사용해야 하는 시기와 위치를 나타냅니다.
키워드: deferred, nodeferred, immnonurgent
deferred 채널 키워드는 Deferred-delivery: 헤더 행을 인식하고 준수합니다. deferred 전달 날짜가 미래 날짜인 메일은 해당 날짜가 만료되어 반환되거나 지연 전달 날짜가 될 때까지 채널 대기열에 보관됩니다. Deferred-delivery: 헤더 행의 형식 및 작업에 대한 자세한 내용은 RFC 1327을 참조하십시오.
기본값은 nodeferred 키워드입니다. 지연 메일 처리에 대한 지원이 RFC 1327에 규정되어 있지만 지연 메일 처리를 실제로 구현하면 메일 시스템을 디스크 할당량의 확장으로 효과적으로 사용할 수 있습니다.
키워드 immnonurgent는 높음, 중간 및 낮음 우선 순위 메일을 제출하면 바로 전달을 시작합니다.
키워드: backoff, nonurgentbackoff, normalbackoff, urgentbackoff, notices
기본적으로 전달에 실패한 메일에 대한 전달 재시도 간격은 메일의 우선 순위에 따라 다릅니다. 전달 시도 사이의 기본 간격(분)은 아래에 나와 있습니다. 우선 순위 뒤의 첫 번째 숫자는 최초 전달 실패 후 첫 번째 전달 재시도가 시도될 때까지의 시간(분)을 나타냅니다.
urgent: 30, 60, 60, 120, 120, 120, 240 normal: 60, 120, 120, 240, 240, 240, 480 nonurgent: 120, 240, 240, 480, 480, 480, 960
우선 순위가 높은 메일의 경우 최초 전달 실패 후 30분 뒤, 첫 번째 전달 재시도 후 60분 뒤, 두 번째 재시도 후 60분 뒤, 세 번째 재시도 후 120분 뒤 등의 간격으로 재시도가 시도됩니다. 지정된 마지막 시도 이후의 재시도는 동일한 간격으로 반복됩니다. 따라서, 우선 순위가 높은 메일은 이러한 전달 재시도가 240분 간격으로 수행됩니다.
전달 시도는 notices, nonurgentnotices, normalnotices 또는 urgentnotices 키워드에 지정된 기간 동안 계속됩니다. 전달이 성공적으로 이루어질 수 없으면 전달 실패 알림이 생성되고 메일은 보낸 사람에게 반환됩니다. notices 키워드에 대한 자세한 내용은 알림 메일 전달 간격 설정을 참조하십시오.
backoff 키워드를 사용하면 다양한 우선 순위를 갖는 메일에 대한 전달 재시도 간격 설정을 사용자 정의할 수 있습니다. nonurgentbackoff는 우선 순위가 낮은 메일에 대한 간격을 지정하고, normalbackoff는 우선 순위가 보통인 메일에 대한 간격을 지정하고, urgentbackoff는 우선 순위가 높은 메일에 대한 간격을 지정합니다. 이러한 키워드를 지정하지 않으면 우선 순위에 관계 없이 backoff에 의해 모든 메일에 대한 간격이 지정됩니다.
예를 들면 다음과 같습니다.
urgentbackoff "pt30m" "pt1h" "pt2h" "pt3h" "pt4h" "pt5h" "pt8h" "pt16h"
여기서 우선 순위가 높은 메일의 경우 최초 전달 실패 후 30분 뒤, 첫 번째 전달 시도 후 1시간 뒤(최초 실패 후 1시간 30분 뒤), 두 번째 전달 시도 후 2시간 뒤, 세 번째 시도 후 3시간 뒤, 네 번째 시도 후 4시간 뒤, 다섯 번째 시도 후 5시간 뒤, 여섯 번째 시도 후 8시간 뒤, 일곱 번째 전달 시도 후 16시간 뒤에 각각 전달 재시도가 수행됩니다. 후속 시도는 notices 키워드에 지정된 기간까지 16시간마다 수행됩니다. 전달이 성공적으로 이루어질 수 없으면 전달 실패 알림이 생성되고 메일은 보낸 사람에게 반환됩니다. 간격 구문은 ISO 8601P에 나와 있으며 Sun Java System Messaging Server Administration Reference에도 설명되어 있습니다.
다음 예에서,
normalbackoff "pt30m" "pt1h" "pt8h" "p1d" "p2d” "p1w"
우선 순위가 보통인 메일의 경우 최초 전달 실패 후 30분 뒤, 첫 번째 전달 시도 후 1시간 뒤, 두 번째 시도 후 8시간 뒤, 세 번째 시도 후 1일 뒤, 네 번째 시도 후 2일 뒤, 다섯 번째 시도 후 1주일 뒤에 전달 재시도가 각각 수행되고 이후에는 notices 키워드에 지정된 기간까지 1주일마다 전달 재시도가 반복됩니다. 전달이 성공적으로 이루어질 수 없으면 전달 실패 알림이 생성되고 메일은 보낸 사람에게 반환됩니다.
마지막 예에서,
backoff "pt30m" "pt120m" "pt16h" "pt36h" "p3d"
모든 실패한 메일의 경우 nonurgentbackoff, normalbackoff 또는 urgentbackoff 키워드에 의해 대체되지 않는 한, 메일 우선 순위에 관계 없이 최초 전달 실패 후 30분 뒤, 첫 번째 재시도 후 2시간 뒤, 두 번째 재시도 후 16시간 뒤, 세 번째 재시도 후 36시간 뒤, 네 번째 재시도 후 3일 뒤에 전달 재시도가 각각 수행되고 이후에는 notices 키워드에 지정된 기간까지 3일마다 전달 재시도가 수행됩니다. 전달이 성공적으로 이루어질 수 없으면 전달 실패 알림이 생성되고 메일은 보낸 사람에게 반환됩니다.
채널을 동일한 풀 내에서 실행하여 여러 채널이 자원을 공유하도록 구성할 수 있습니다. 다른 채널을 특정 채널에 전용인 풀에서 실행하도록 구성할 수 있습니다. 각 풀 내에서 메일은 메일 우선 순위에 따라 서로 다른 처리 대기열에 자동으로 정렬됩니다. 풀 내에서 우선 순위가 높은 메일이 우선 순위가 낮은 메일보다 먼저 처리됩니다. 크기 기반 메일 우선 순위를 참조하십시오.
pool 키워드를 사용하면 작업이 만들어지는 풀을 채널 단위로 선택할 수 있습니다. pool 키워드는 현재 채널에 대한 전달 작업을 풀링해야 하는 풀 이름 앞에 와야 합니다. 풀 이름은 11자를 초과할 수 없습니다.
Job Controller 개념 및 구성에 대한 자세한 내용은 Job Controller 파일, Job Controller 파일 및 서비스 작업 제한을 참조하십시오.
메일이 채널의 대기열에 배치될 때마다 Job Controller는 해당 메일을 전달하기 위해 실행 중인 작업이 있는지 확인합니다. 여기에는 새 작업 프로세스를 시작하거나, 스레드를 추가하거나, 단순히 작업이 이미 실행 중인지 확인하는 것이 포함됩니다. 단일 서비스 작업으로 모든 메일 전달을 확인하지 못할 수도 있습니다. Job Controller 개념 및 구성에 대한 자세한 내용은 Job Controller 파일, 채널 실행 작업의 처리 풀 및 Job Controller를 참조하십시오.
특정 설치의 경우 메일 전달을 위해 시작할 프로세스 및 스레드에 대한 합리적인 최대 수가 있습니다. 이 최대 수는 프로세서 수, 디스크 속도, 연결 특징 등의 요인에 따라 다릅니다. MTA 구성에서는 다음을 제어할 수 있습니다.
지정된 채널에 대해 실행할 최대 프로세스 수(maxjobs 채널 키워드)
채널 집합에 대해 시작할 최대 프로세스 수(Job Controller 구성 파일의 관련 풀 섹션에 있는 JOB_LIMIT 매개 변수)
새 스레드 또는 프로세스를 시작하기 전에 받은 대기열에 포함된 메일 수(threaddepth 채널 키워드)
일부 채널의 경우 지정된 전달 프로그램 내에서 실행되는 최대 스레드 수(채널 옵션 파일에 있는 max_client_threads 매개 변수)
지정된 채널에 대해 실행을 시작하는 최대 프로세스 수는 채널에 설정된 maxjobs의 최대값이며 채널이 실행되는 풀에 대해 설정된 JOB_LIMIT입니다.
메일을 처리해야 한다고 가정합니다. 일반적으로 Job Controller는 새 프로세스를 다음과 같이 시작합니다.
채널에 대해 실행 중인 프로세스가 없고 풀 작업 제한에 도달하지 않은 경우 Job Controller는 새 프로세스를 시작합니다.
채널 프로그램이 단일 스레드이거나 스레드 제한에 도달하고 백로그가 threaddepth에 지정된 스레드 수의 배 이상으로 증가하고 채널 및 풀 작업 제한에 도달하지 않은 경우 Job Controller는 새 프로세스를 시작합니다.
채널 프로그램이 다중 스레드이고 스레드 제한에 도달하지 않고 메일 백로그가 threaddepth의 배 이상으로 증가한 경우 새 스레드가 시작됩니다.
특히, SMTP 채널의 경우 서로 다른 호스트에 대한 대기열에 메일이 포함될 경우 새 스레드 또는 프로세스가 시작됩니다. 따라서, SMTP 채널의 경우 Job Controller는 새 프로세스를 다음과 같이 시작합니다. 메일을 처리해야 한다고 가정합니다.
SMTP 채널에 대해 실행 중인 프로세스가 없고 풀 제한에 도달하지 않은 경우 Job Controller는 새 프로세스를 시작합니다.
스레드 제한(MAX_CLIENT_THREADS)에 도달하고, 아직 사용되고 있지 않은 호스트의 대기열에 메일이 포함되고, 채널(maxjobs) 및 풀 작업 제한(JOB_LIMIT)에 도달하지 않은 경우 새 프로세스가 시작됩니다.
스레드 제한에 도달하지 않고 아직 사용되고 있지 않은 호스트의 대기열에 메일이 포함될 경우 새 스레드가 시작됩니다.
스레드 제한에 도달하지 않고 메일이 대기열에 포함되어 해당 호스트에 대한 메일 백로그가 threaddepth의 배 이상으로 증가할 경우 새 스레드가 시작됩니다.
SMTP 채널 스레드를 참조하십시오.
filesperjob 키워드를 사용하여 MTA에서 추가 서비스 작업을 만들 수 있습니다. 이 키워드는 여러 서비스 작업을 만들어 처리하기 전에 연결된 채널로 보내야 하는 대기열 항목(파일) 수를 지정하는 단일의 양의 정수 매개 변수를 가집니다. 0보다 작거나 같은 값을 지정하면 하나의 서비스 작업만 대기열에 포함하라는 요청으로 해석됩니다. 키워드를 지정하지 않으면 0의 값을 지정한 것과 같습니다. 이 키워드의 효과는 최대화됩니다. 즉, 계산된 높은 숫자가 실제로 만들어지는 서비스 작업 수가 됩니다.
filesperjob 키워드는 실제 대기열 항목 또는 파일 수를 지정된 값으로 나눕니다. 지정된 메일의 대기열 항목 수는 single 및 single_sys 키워드의 사용, 메일링 목록의 헤더 수정 작업 사양 등 많은 요소에 의해 제어됩니다.
maxjobs 키워드는 동시에 실행될 수 있는 총 서비스 작업 수에 대한 최대값을 지정합니다. 이 키워드는 정수 값이 뒤에 와야 합니다. 계산된 서비스 작업 수가 이 값보다 더 큰 경우 maxjobs 작업만 실제로 만들어집니다. maxjobs를 지정하지 않은 경우 이 값의 기본값은 100입니다. 일반적으로 maxjobs는 채널이 사용되는 서비스 풀에 관계 없이 동시에 실행될 수 있는 총 작업 수보다 작거나 같은 값으로 설정됩니다.
transactionlimit는 연결당 허용되는 메일 수를 제한합니다. 이 키워드를 사용하여 다음과 같은 방법으로 공격자를 차단할 수 있습니다.
공격자가 SMTP를 통해 연결한 다음 많은 RCPT TO 명령을 보내 합법적인 전자 메일 주소를 추측하려고 시도할 수 있습니다. 트랜잭션에 허용되는 유효하지 않은 RCPT TO 수를 제한하여 그런 공격을 차단할 수 있습니다. 공격자는 SMTP 세션에 허용되는 트랜잭션 수를 제한할 수 있는 transactionlimit가 있는 여러 트랜잭션을 사용하여 응답할 수 있습니다. 공격자가 여러 세션을 사용할 수 있지만 과도한 비용이 듭니다. 연결 억제를 사용하여 대부분의 경우에 실제로 많은 비용이 들게 하는 다양한 방법으로 세션 수를 제한할 수 있습니다.
이 비용은 우리 쪽에 부과되는 비용이지만,일부 SMTP 클라이언트는 수신자 제한, 트랜잭션 제한 또는 두 가지 모두에 잘못된 반응을 나타내는 경우도 있습니다. 이러한 클라이언트에 대한 예외를 만들어야 합니다. 그러나, TCP 채널 옵션은 SMTP 서버에 무조건적으로 적용됩니다. 솔루션은 채널 키워드와 switchchannel을 사용하여 문제가 있는 에이전트의 경로를 더 큰 제한이 있는 채널로 지정하는 것입니다.
키워드: urgentblocklimit, normalblocklimit, nonurgentblocklimit
urgentblocklimit, normalblocklimit 및 nonurgentblocklimit 키워드를 사용하여 MTA에 크기 기반 메일의 우선 순위를 낮추도록 지시할 수 있습니다. 이러한 키워드는 메일을 처리할 때 Job Controller가 적용하는 우선 순위에 영향을 미칩니다.
다중 스레드 SMTP 클라이언트는 각 스레드에 대한 대상별로 보내는 메일을 정렬합니다. threaddepth 키워드를 사용하면 다중 스레드 SMTP 클라이언트에 한 스레드에서 지정된 수의 메일만 처리하도록 지시하여 대상이 같은 메일(일반적으로 한 스레드에서 모두 처리됨)일 경우에도 추가 스레드를 사용하게 할 수 있습니다. 이 키워드의 기본값은 10입니다.
채널의 백로그가 threaddepth의 배 이상으로 증가할 때마다 Job Controller는 해당 채널의 대기열에 포함된 메일 처리를 전담하는 처리량을 높이려고 시도합니다. 다중 스레드 채널의 경우 Job Controller는 해당 채널에 대한 메일을 처리하는 작업에서 새 스레드를 시작하게 합니다. 또는 모든 작업이 해당 채널에 대해 허용된 최대 수의 스레드(tcp_* 채널에 대한 옵션의 MAX_CLIENT_THREADS)를 갖는 경우 새 프로세스를 시작합니다. 단일 스레드 채널의 경우 새 프로세스를 시작합니다. 채널에 대한 작업 제한(maxjobs) 또는 풀에 대한 작업 제한(JOB_LIMIT)에 도달한 경우 Job Controller는 새 작업을 시작하지 않습니다.
기본적으로 threaddepth는 적극적인 작업을 예약하는 방법을 제어합니다. 다음의 두 가지 다른 상황을 고려해 보겠습니다.
(1) 일반(아웃바운드) SMTP 채널
(2) 스마트 호스트에 전달하는 SMTP 채널
Job Controller는 특정 채널을 대상으로 하는 메일을 대상 호스트별로 정렬하고 이러한 대상 호스트의 백로그에 기초하여 메일을 처리하기 위한 작업을 예약합니다.
첫 번째 경우는 많은 수의 대상 호스트가 있고 대상 호스트의 백로그가 대부분 작습니다. 실행되는 스레드의 수가 많으며 aol, yahoo, hotmail 등과 같이 대량의 트래픽이 있을 수 있는 대상 호스트를 제외하고는 모두 제대로 작동합니다. 스레드 깊이가 128인 경우 백로그가 128에 도달하면 yahoo에 전달되는 두 번째 스레드만 가져오게 됩니다. 이는 바람직하지 않습니다.
두 번째 경우는 대상 호스트가 하나만 존재하며 해당 호스트에 많은 수의 스레드를 전달 하는 것이 바람직합니다. 어느 경우든 기본값 10은 너무 작을 수 있습니다.
threaddepth를 사용하면 채널이 연결하는 SMTP 서버에서 여러 동시 연결을 처리할 수 있을 때 데몬 라우터 TCP/IP 채널(단일의 특정 SMTP에 연결하는 TCP/IP 채널)에서 다중 스레딩을 수행하는 데 특히 유용합니다.
키워드: expandlimit, expandchannel, holdlimit
대부분의 채널은 각 인바운드 메일 전송에서 여러 수신자 주소 사양을 지원합니다. 단일 메일에 많은 수신자 주소가 있는 사양에서는 메일 전송 처리가 지연될 수 있습니다(온라인 지연). 너무 오래 지연될 경우 네트워크 시간 초과가 발생하여 메일 제출 시도가 반복되거나 기타 문제가 발생할 수 있습니다.
MTA는 단일 메일에 대해 지정된 수보다 더 많은 주소를 지정할 경우 지연(오프라인) 처리를 강제하는 특수 기능을 제공합니다. 메일 처리 지연은 온라인 지연을 대폭 줄일 수 있습니다. 그러나 처리 오버헤드가 지연되지만 완전히 제거되지는 않습니다.
예를 들어, 일반 reprocessing 채널과 expandlimit 키워드를 함께 사용하면 이 특수 기능이 활성화됩니다. expandlimit 키워드는 지연 처리 이전에 채널에서 받은 메일에 허용되는 주소 수를 지정하는 정수 인수를 가집니다. expandlimit 키워드를 지정하지 않은 경우 기본값은 무제한입니다. 값이 0이면 채널에서 수신하는 모든 주소에서 지연 처리를 수행합니다.
로컬 채널 또는 reprocessing 채널 자체에는 expandlimit 키워드를 지정하면 안 됩니다. 이러한 키워드를 지정하면 예상치 못한 결과가 발생할 수 있습니다.
지연 처리를 수행하는 데 실제로 사용되는 채널은 expandchannel 키워드를 사용하여 지정할 수 있습니다. expandchannel을 지정하지 않은 경우 reprocessing 채널이 기본적으로 사용되지만 다른 reprocessing 또는 processing 채널을 사용하는 것이 유용한 경우도 있습니다. expandchannel을 통해 지연 처리를 위한 채널을 지정하는 경우 해당 채널이 reprocessing 또는 processing 채널이어야 합니다. 다른 종류의 채널 사양은 예측할 수 없는 결과를 초래할 수 있습니다.
expandlimit 키워드를 적용하려면 reprocessing 채널이나 지연 처리를 수행하는 데 사용되는 모든 채널을 MTA 구성 파일에 추가해야 합니다. MTA 구성 유틸리티를 사용하여 구성을 작성한 경우 reprocessing 채널이 이미 있어야 합니다.
지나치게 큰 수신자 주소 목록은 UBE(Unsolicited Bulk Email) 특성을 가질 수 있습니다. holdlimit 키워드는 수신자가 지정된 수보다 많은 채널에서 수신하는 메일에 .HELD 메일 표시를 하고 reprocess 채널 또는 expandchannel 키워드를 통해 지정한 모든 채널의 대기열에 포함하도록 MTA에 지시합니다. 이러한 파일은 MTA 포스트마스터가 수동으로 처리할 때까지 reprocess 대기열에 처리되지 않은 상태로 유지됩니다.
service 키워드는 CHARSET-CONVERSION 항목에 관계 없이 서비스 변환을 무조건적으로 사용합니다. noservice 키워드를 설정하면 이 채널에 수신되는 메일에 대해 CHARSET-CONVERSION을 통해 서비스 변환을 사용해야 합니다.
이 절에서는 주소 처리를 수행하는 키워드에 대해 설명합니다. 이 장은 다음 내용으로 구성되어 있습니다.
키워드: 822, 733, uucp, header_822, header_733, header_uucp
이 키워드 그룹은 채널에서 지원하는 주소 유형을 제어합니다. 전송 계층(메일 봉투)에 사용되는 주소와 메일 헤더에 사용되는 주소를 구분합니다.
소스 경로 봉투 주소입니다. 이 채널은 소스 경로를 포함하여 전체 RFC 822 형식의 봉투 주소 지정 규칙을 지원합니다. sourceroute 키워드를 822와 동의어로 사용할 수도 있습니다. 이 키워드는 다른 봉투 주소 유형 키워드를 지정하지 않은 경우의 기본값입니다.
백분율(%) 기호 봉투 주소입니다. 이 채널은 소스 경로를 제외한 전체 RFC 822 형식의 봉투 주소 지정을 지원합니다. 소스 경로는 백분율(%) 기호 규칙을 대신 사용하여 다시 작성해야 합니다. percents 키워드는 733에 대한 동의어로 사용될 수 있습니다.
SMTP 채널에서 733 주소 규칙을 사용하면 이러한 규칙이 SMTP 봉투의 전송 계층 주소에 적용됩니다. 그렇게 하면 RFC 821을 위반할 수 있습니다. 733 주소 규칙은 반드시 필요한 경우에만 사용하십시오.
뱅 스타일 봉투 주소입니다. 이 채널은 RFC 976 뱅 스타일의 주소 규칙을 준수하는 주소를 봉투에 사용합니다. 이 채널의 예로는 UUCP 채널이 있습니다. bangstyle 키워드는 uucp에 대한 동의어로 사용될 수도 있습니다.
소스 경로 헤더 주소입니다. 이 채널은 소스 경로를 포함하여 전체 RFC 822 형식의 헤더 주소 지정 규칙을 지원합니다. 다른 헤더 주소 유형 키워드를 지정하지 않을 경우의 기본값입니다.
백분율(%) 기호 헤더 주소입니다. 이 채널은 소스 경로를 제외한 RFC 822 형식의 헤더 주소 지정을 지원합니다. 소스 경로는 백분율(%) 기호 규칙을 대신 사용하여 다시 작성해야 합니다.
메일 헤더에 733 주소 규칙을 사용하면 RFC 822 및 RFC 976 위반입니다. 채널이 소스 경로 주소를 처리할 수 없는 시스템에 연결된다고 확신하는 경우에만 이 키워드를 사용하십시오.
UUCP 또는 뱅 스타일의 헤더 주소입니다. 이 키워드를 사용하면 RFC 976 위반이므로이 키워드는 사용하지 않는 것이 좋습니다.
키워드: bangoverpercent, nobangoverpercent, percentonly
주소는 항상 RFC 822 및 RFC 976에 따라 해석되지만 이러한 표준에 맞게 주소가 지정되지 않은 복합 주소를 처리할 경우 애매할 수 있습니다. 특히 A!B%C 형식 주소는 다음과 같이 해석될 수 있습니다.
A는 라우팅 호스트로 해석되고 C는 최종 대상 호스트로 해석됩니다.
또는
C는 라우팅 호스트로 해석되고 A는 최종 대상 호스트로 해석됩니다.
RFC 976은 메일 프로그램이 두 번째 규칙을 사용하여 주소를 해석할 수 있음을 의미하지만 그런 해석이 반드시 필요하다는 의미는 아닙니다. 첫 번째 해석 방법이 더 좋은 경우도 있습니다.
bangoverpercent 키워드는 첫 번째 A!(B%C) 해석을 수행하게 합니다. nobangoverpercent 키워드는 두 번째 (A!B)%C 해석을 수행하게 합니다. 기본값은 nobangoverpercent입니다.
이 키워드는 A!B@C 형식 주소 처리에 영향을 미치지 않습니다. 이러한 주소는 항상 (A!B)@C로 처리됩니다. 이러한 처리는 RFC 822와 RFC 976 모두에서 필수입니다.
percentonly 키워드는 뱅 경로를 무시합니다. 이 키워드를 설정하면 %이 라우팅으로 해석됩니다.
키워드: exproute, noexproute, improute, noimproute
MTA가 처리하는 주소 지정 모델에서는 모든 시스템이 다른 나머지 시스템의 주소와 다른 시스템에 연결하는 방법을 알고 있는 것으로 가정합니다. 불행하게도 이러한 가정이 모든 경우에 적용되는 것은 아닙니다. 채널이 다른 나머지 시스템에서는 알지 못하는 하나 이상의 시스템(예: 개인 TCP/IP 네트워크의 내부 시스템)에 연결하는 경우가 있습니다. 이 채널의 시스템 주소는 사이트 외부의 원격 시스템에는 적합하지 않을 수 있습니다. 그러한 주소에 회신할 수 있으려면 로컬 시스템을 통해 메일 경로를 지정하도록 원격 시스템에 알려주는 소스 경로가 해당 주소에 포함되어 있어야 합니다. 그러면 로컬 시스템이 메일의 경로를 이러한 시스템으로 (자동) 지정할 수 있습니다.
exproute 키워드(“explicit routing“의 약어)는 주소를 원격 시스템에 전달할 때 연결된 채널에 명시적 라우팅이 필요함을 MTA에 알려 줍니다. 이 키워드를 한 채널에서 지정하면 MTA가 해당 채널과 일치하는 모든 헤더 주소와 모든 봉투의 From: 주소에 로컬 시스템의 이름 또는 로컬 시스템의 현재 별칭을 포함하는 라우팅 정보를 추가합니다. 기본값인 noexproute는 라우팅 정보를 추가하지 않도록 지정합니다.
EXPROUTE_FORWARD 옵션을 사용하여 exproute 작업을 역방향 주소로 제한할 수 있습니다. 다른 시나리오는 MTA가 자체적으로 라우팅을 수행할 수 없는 채널을 통해 시스템에 연결하는 경우입니다. 이 경우 부적합한 시스템에 연결되는 채널에 보낸 메일에 해당 주소가 사용되는 시기를 나타내는 라우팅이 다른 채널과 연결된 모든 주소에 있어야 합니다.
암시적 라우팅과 improute 키워드는 이 상황을 처리하는 데 사용됩니다. MTA는 다른 채널과 일치하는 모든 주소가 improute 표시 채널에 보낸 메일에 사용될 경우 라우팅이 필요함을 알고 있습니다. 기본값인 noimproute는 지정된 채널에서 보내는 메일의 주소에 라우팅 정보를 추가하지 않도록 지정합니다. IMPROUTE_FORWARD 옵션을 사용하여 improute 작업을 역방향 주소로 제한할 수 있습니다.
exproute 및 improute 키워드의 사용을 절제해야 합니다. 이러한 키워드는 길고 복잡한 주소를 만들기 때문에 다른 시스템에 사용되는 지능적인 라우팅 체계를 손상시킬 수 있습니다. 명시적 라우팅과 암시적 라우팅을 지정된 경로와 혼동해서는 안 됩니다. 지정된 경로는 라우팅 정보를 다시 쓰기 규칙에서 주소로 삽입하는 데 사용됩니다. 이 키워드는 특수 A@B@C 다시 쓰기 규칙 템플리트에 의해 활성화됩니다.
지정된 경로를 활성화하면 헤더와 봉투에 있는 모든 주소에 적용됩니다. 지정된 경로는 특정 다시 쓰기 규칙에 의해 활성화되며 일반적으로 현재 사용 중인 채널과는 관련이 없습니다. 다시 말해서 명시적 라우팅과 암시적 라우팅은 채널 단위로 제어되며 삽입된 경로 주소는 항상 로컬 시스템입니다.
routelocal 채널 키워드는 채널에 주소를 다시 쓸 때 MTA가 주소에 명시적 라우팅을 “단락”하게 합니다. 명시적 라우팅 주소(!, % 또는 @ 문자 사용)는 단순화됩니다.
내부 TCP/IP 채널과 같은 “내부” 채널에 이 키워드를 사용하면 SMTP 릴레이 차단 구성을 단순화할 수 있습니다.
명시적 % 또는 다른 라우팅이 필요한 채널에서는 이 키워드를 사용하지 마십시오.
키워드: connectalias, connectcanonical
MTA는 일반적으로 채널 대기열에 메일을 넣을 때 주소를 다시 씁니다. 메일을 대기열에서 제거하는 동안에는 추가 다시 쓰기를 수행하지 않습니다. 그렇게 하면 채널 대기열에 이전 이름으로 주소가 지정된 메일이 있을 경우 호스트 이름을 변경하면 문제가 발생할 수 있습니다.
connectalias 키워드는 수신자 주소에 나열된 모든 호스트에 전달하도록 MTA에 지시하는 기본값입니다. connectcanonical 키워드는 MTA가 연결되는 시스템의 호스트 별칭에 연결하도록 MTA에 지시합니다.
키워드: remotehost, noremotehost, defaulthost, nodefaulthost
MTA는 잘못 구성되거나 호환되지 않는 메일 프로그램 및 SMTP 클라이언트로부터 도메인 이름이 포함되지 않은 주소를 받는 경우가 있습니다. 이 경우 MTA는 이러한 주소를 올바른 주소로 만든 후에 전달을 시도합니다. 이를 위해 MTA는 주소에 도메인 이름을 추가(예: @siroe.com을 mrochek에 추가)합니다.
도메인 이름이 없는 봉투의 To: 주소의 경우 MTA는 항상 로컬 호스트 이름을 추가해야 한다고 가정합니다. 그러나 From: 주소와 같은 다른 주소에서는 MTA SMTP 서버의 경우 두 가지 이상의 도메인 이름 선택 항목(로컬 MTA 호스트 이름과 클라이언트 SMTP가 보고한 원격 호스트 이름)이 있습니다. 세 번째 선택 항목(해당 채널에서 수신하는 메일에 추가할 특정 도메인 이름)이 있는 경우도 있습니다. 처음 두 선택 항목이 특정 빈도로 계속해서 발생할 경우 그 중 하나가 올바를 수 있습니다. 잘못 구성된 SMTP 클라이언트를 처리할 경우 원격 호스트 도메인 이름을 사용하는 것이 좋습니다. SMTP가 메일을 게시하는 데 사용하는 POP 또는 IMAP 클라이언트와 같은 경량 원격 메일 클라이언트를 처리할 경우 로컬 호스트 도메인 이름을 사용하면 안 됩니다. POP 또는 IMAP와 같은 경량 원격 메일 클라이언트의 경우 클라이언트에 로컬 호스트의 도메인 이름이 아닌 해당 클라이언트의 특정 도메인 이름이 있어야 합니다. 그런 다음 다른 특정 도메인 이름을 추가할 수 있습니다. MTA가 채널 단위로 선택하도록 허용하는 것이 가장 좋습니다.
noremotehost 채널 키워드는 로컬 호스트 이름을 사용하도록 지정합니다. 기본값은 noremotehost 키워드입니다.
defaulthost 채널 키워드는 받는 사용자 아이디에 추가할 특정 호스트 이름을 지정하는 데 사용됩니다. 또한, 해당 채널에서 수신하는 주소(봉투의 From: 및 헤더)를 완성하는 데 사용할 도메인 이름이 뒤에 와야 합니다. 제출 채널의 경우 defaulthost 키워드의 첫 번째 인수가 봉투의 To: 주소에도 적용됩니다. 선택적 두 번째 도메인 이름(하나 이상의 점이 있음)을 봉투의 To: 주소를 완성하는 데 사용하도록 지정할 수 있습니다. 기본값은 nodefaulthost입니다.
앞의 받는 메일을 위한 대체 채널(전환 채널) 절에서 설명한 것처럼 switchchannel 키워드를 사용하여 받는 SMTP 연결을 특정 채널에 연결할 수 있습니다. 이 기능을 사용하면 원격 메일 클라이언트를 적절하게 처리될 수 있는 특정 채널에서 그룹화할 수 있습니다. 또한, MTA 호스트에서 네트워크 차원 문제를 해결하려고 시도하는 것보다는 비호환 클라이언트를 여러 개 사용 중인 경우에도 표준 호환 원격 메일 클라이언트를 배포하는 것이 더 간단합니다.
RFC 822(인터넷) 메일에는To:, Cc: 또는 Bcc: 헤더 행과 같은 수신자 헤더 행이 있어야 합니다. 이러한 헤더 행이 없는 메일은 잘못된 것입니다. 그럼에도 불구하고 sendmail의 많은 이전 버전과 같은 일부 손상된 사용자 에이전트 및 메일 프로그램에서는 잘못된 메일을 생성합니다.
missingrecipientpolicy 키워드는 그러한 메일을 사용하는 방법을 지정하는 정수 값을 취합니다. 기본값은 이 키워드가 명백히 표시되지 않은 경우 1(잘못된 메일을 변경하지 않고 전달)이 됩니다.
표 12–25 missingrecipientpolicy 값
값 |
작업 |
---|---|
0 |
봉투의 To: 수신자를 To: 헤더 행에 넣습니다. |
1 |
잘못된 메일을 변경하지 않은 상태로 전달합니다. |
2 |
봉투의 To: 수신자를 To: 헤더 행에 넣습니다. |
3 |
모든 봉투의 To: 수신자를 Bcc: 헤더 행에 넣습니다. |
4 |
그룹 구조(예: “;”) To: 헤더 행을 “To: Recipients not specified: ;”로 생성합니다. |
5 |
빈 Bcc: 헤더 행을 생성합니다. |
6 |
메일을 거부합니다. |
MISSING_RECIPIENT_POLICY 옵션을 사용하여 이 동작에 대한 MTA 시스템 기본값을 설정할 수 있습니다. 초기 Messaging Server 구성에서는 MISSING_RECIPIENT_POLICY가 1로 설정됩니다.
RFC 822(인터넷) 메일에서 To:, Resent-To:, Cc: 또는 Resent-Cc: 헤더에는 하나 이상의 주소가 포함되어 있어야 합니다. 이러한 헤더는 빈 값을 가질 수 없습니다. 그럼에도 불구하고 일부 메일 프로그램은 잘못된 헤더를 생성할 수 있습니다. dropblank 채널 키워드를 소스 채널에 지정한 경우 MTA는 받는 메일에서 그러한 잘못된 빈 헤더를 스트라이프합니다.
reverse 키워드는 채널 대기열에 포함된 메일의 주소를 주소 역방향 데이터베이스 또는 REVERSE 매핑을 통해 검색하여 수정(있는 경우)하도록 지시합니다. noreverse는 채널 대기열에 포함된 메일의 주소를 주소 역방향 처리에서 제외합니다. 기본값은 reverse 키워드입니다. 주소를 내부 형식에서 공용 형식으로 변환 을 참조하십시오.
일부 메일 시스템에서는 RFC 822에서 허용하는 모든 형식의 주소를 처리하는 데 어려움이 있습니다. 이러한 공통된 예로는 잘못된 구성 파일을 갖는 sendmail 기반 메일 프로그램이 있습니다. 따옴표가 있는 로컬 부분 또는 메일함 사양이 문제의 원인이 되는 경우가 많습니다.
"smith, ned"@siroe.com
이러한 것이 문제의 주된 원인이며 RFC 1137에는 이러한 문제를 해결하기 위한 방법론이 나와 있습니다. 기본적인 방법은 주소에서 따옴표를 제거한 다음 따옴표가 필요한 문자를 atom에 허용된 문자로 매핑하는 변환을 적용하는 것입니다. 여기에 사용되는 atom에 대한 정의는 RFC 822를 참조하십시오. 예를 들면 선행 주소는 다음과 같습니다.
smith#m#_ned@siroe.com
restricted 채널 키워드는 채널이 이 인코딩을 필요로 하는 메일 시스템에 연결됨을 MTA에 알려줍니다. 그러면 MTA는 채널에 메일이 기록될 때 헤더와 봉투 주소 모두에서 따옴표가 있는 로컬 부분을 인코딩합니다. 채널의 받는 주소는 자동으로 디코딩됩니다. unrestricted 키워드는 MTA에 RFC 1137 인코딩 및 디코딩을 수행하지 않도록 지시합니다. 기본값은 unrestricted 키워드입니다.
따옴표가 있는 로컬 부분을 적용할 수 없는 시스템에 연결하는 채널에는 restricted 키워드를 적용해야 합니다. 따옴표가 있는 로컬 부분을 실제로 생성하는 채널에는 이 키워드를 적용할 수 없습니다. 그런 주소를 생성할 수 있는 채널은 해당 주소를 처리할 수 있다고 가정합니다.
키워드: addreturnpath, noaddreturnpath
일반적으로 Return-path: 헤더 행을 추가하는 것은 최종 전달을 수행하는 채널에서 담당합니다. ims-ms 채널과 같은 일부 채널의 경우 채널에서 Return-path: 헤더를 추가하는 것보다 MTA에서 추가하는 것이 더 효과적입니다. addreturnpath 키워드는 Return-path: 헤더가 이 채널의 대기열에 포함될 때 이 경로를 추가합니다.
키워드: receivedfor, noreceivedfor, receivedfrom, noreceivedfrom
receivedfor 키워드는 메일의 주소가 한 명의 봉투 수신자로만 지정된 경우 해당 봉투의 To: 주소를 Received: 헤더 행에 포함하도록 MTA에 지시합니다. 기본값은 receivedfor 키워드입니다. noreceivedfor 키워드는 봉투 주소 정보를 포함하지 않고 Received: 헤더 행을 구성하도록 MTA에 지시합니다.
receivedfrom 키워드는 특정 종류의 메일 목록 확장으로 인해 MTA에서 봉투의 From: 주소를 변경한 경우, 받는 메일에 대한 Received: 헤더 행을 구성할 때 원래의 From: 주소를 포함하도록 MTA에 지시합니다. 기본값은 receivedfrom입니다. noreceivedfrom 키워드는 원래 From: 주소를 포함하지 않고 Received: 헤더 행을 구성하도록 MTA에 지시합니다.
키워드: commentinc, commentmap commentomit, commentstrip, commenttotal, sourcecommentinc, sourcecommentmap, sourcecommentomit, sourcecommentstrip, sourcecommenttotal
MTA는 필요한 경우에만 헤더 행의 내용을 해석합니다. 그러나 주소를 포함하는 모든 등록된 헤더 행의 구문을 분석하여 축약형 주소를 제거한 다음 올바른 주소로 변환해야 합니다. 이 프로세스 중에 헤더 행을 다시 작성할 때 주석(괄호로 묶인 문자열)을 추출하여 수정하거나 제외할 수 있습니다.
이 동작은 commentinc, commentmap, commentomit, commentstrip 및 commenttotal 키워드를 사용하여 제어합니다. commentinc 키워드는 헤더 행에 주석을 유지하도록 MTA에 지시하는 기본값입니다. commentomit 키워드는 To:, From:, Cc: 헤더 행과 같은 주소 지정 헤더에서 주석을 제거하도록 MTA에 지시합니다.
commenttotal 키워드는 Received: 헤더 행을 제외한 모든 헤더 행에서 주석을 제거하도록 MTA에 지시합니다. 이 키워드는 대부분 유용하지 않거나 권장되지 않습니다. commentstrip은 모든 주석 필드에서 nonatomic 문자를 제거하도록 MTA에 지시합니다. commentmap 키워드는 COMMENT_STRINGS 매핑 테이블을 통해 주석 문자열을 실행합니다.
소스 채널에서 이 동작은 sourcecommentinc, sourcecommentmap, sourcecommentomit, sourcecommentstrip 및 sourcecommenttotal 키워드에 의해 제어됩니다. sourcecommentinc 키워드는 헤더 행에 주석을 유지하도록 MTA에 지시하는 기본값입니다. sourcecommentomit 키워드는 To:, From:, Cc:, From:, Cc: 등과 같은 주소 지정 헤더에서 주석을 제거하도록 MTA에 지시합니다. sourcecommenttotal 키워드는 Received: 헤더를 제외한 모든 헤더에서 주석을 제거하도록 MTA에 지시합니다. 따라서, 이 키워드는 대부분 유용하지 않거나 권장되지 않습니다. 마지막으로 sourcecommentstrip 키워드는 모든 주석 필드에서 nonatomic 문자를 스트라이프하도록 MTA에 지시합니다. sourcecommentmap 키워드는 소스 채널을 통해 주석 문자열을 실행합니다.
이러한 키워드는 모든 채널에 적용될 수 있습니다.
COMMENT_STRINGS 매핑 테이블의 구문은 다음과 같습니다.
(comment_text) | address
항목 템플리트가 $Y 플래그를 설정하는 경우 원래 주석이 지정된 텍스트(괄호로 묶임)로 변경됩니다.
키워드: personalinc, personalmap, personalomit, personalstrip, sourcepersonalinc, sourcepersonalmap, sourcepersonalomit, sourcepersonalstrip
다시 쓰기 프로세스 중에 주소를 포함하는 모든 등록된 헤더 행의 구문을 분석하여 축약형 주소를 제거한 다음 올바른 주소로 변환해야 합니다. 이 프로세스 중에 헤더 행을 다시 작성할 때 개인 이름(대괄호로 구분된 주소 앞의 문자열)을 추출하여 선택적으로 수정하거나 제외할 수 있습니다.
이 동작은 personalinc, personalmap, personalomit 및 personalstrip 키워드를 사용하여 제어합니다. personalinc 키워드는 헤더에 개인 이름을 유지하도록 MTA에 지시하는 기본값입니다. personalomit 키워드는 모든 개인 이름을 제거하도록 MTA에 지시합니다. personalstrip 키워드는 모든 개인 이름 필드에서 nonatomic 문자를 스트라이프하도록 MTA에 지시합니다. personalmap 키워드는 PERSONAL_NAMES 매핑 테이블을 통해 개인 이름을 실행하도록 MTA에 지시합니다.
소스 채널에서 이 동작은 sourcepersonalinc, sourcepersonalmap, sourcepersonalomit 또는 sourcepersonalstrip 키워드에 의해 제어됩니다. sourcepersonalinc 키워드는 헤더에 개인 이름을 유지하도록 MTA에 지시하는 기본값입니다. sourcepersonalomit 키워드는 모든 개인 이름을 제거하도록 MTA에 지시합니다. 마지막으로 sourcepersonalstrip은 모든 개인 이름 필드에서 nonatomic 문자를 스트라이프하도록 MTA에 지시합니다. sourcepersonalmap 키워드는 소스 채널을 통해 개인 이름을 실행하도록 MTA에 지시합니다.
이러한 키워드는 모든 채널에 적용될 수 있습니다.
PERSONAL_NAMES 매핑 테이블 검사 구문은 다음과 같습니다.
personal_name | address
템플리트에 $Y 플래그를 설정하면 원래의 개인 이름이 지정된 텍스트로 변경됩니다.
일반적으로 로컬 채널(UNIX의 l 채널)에 다시 작성된 주소만 별칭 파일과 별칭 데이터베이스에서 조회됩니다. aliaslocal 키워드를 채널에 배치하여 별칭 파일과 별칭 데이터베이스에서 해당 채널에 다시 작성된 주소를 조회할 수도 있습니다. 만든 조회 검사의 정확한 형식은 ALIAS_DOMAINS 옵션에 의해 제어됩니다.
키워드: subaddressexact, subaddressrelaxed, subaddresswild
하위 주소의 개념 관련 배경으로 원시 및 ims-ms 채널은 주소의 로컬 부분(메일함 부분)에서 + 문자를 해석합니다. name+subaddress@domain 형식 주소에서 MTA는 더하기(+) 문자 뒤의 메일함 부분을 하위 주소로 간주합니다. 원시 채널은 하위 주소를 추가 정보로 취급하고 해당 하위 주소에 관계 없이 계정 이름에 실제로 전달합니다. ims-ms 채널은 하위 주소를 전달할 폴더 이름으로 해석합니다.
하위 주소는 로컬 채널(UNIX의 L 채널)에 의한 별칭 조회, aliaslocal 키워드로 표시한 채널에 의한 별칭 조회, 디렉토리 채널에 의한 메일함 조회 등에도 영향을 미칩니다. 그런 일치를 위해 정확한 하위 주소 처리를 구성할 수 있습니다. 주소를 항목과 비교할 경우 MTA는 항상 하위 주소를 포함한 전체 메일함에서 정확한 일치를 먼저 검사합니다. 그런 다음 MTA가 추가 검사를 수행하는지 여부를 구성할 수 있습니다.
subaddressexact 키워드는 항목 일치 중에 특수 하위 주소 처리를 수행하지 않도록 MTA에 지시합니다. 하위 주소를 포함하여 전체 메일함이 항목과 일치해야 별칭이 일치하는 것으로 간주됩니다. 추가 비교(와일드카드 비교 또는 하위 주소를 제외한 비교)가 수행되지 않습니다. subaddresswild 키워드는 전체 하위 주소를 포함한 정확한 일치를 조사한 다음 name+* 형식 항목을 조사하도록 MTA에 지시합니다. subaddressrelaxed 키워드는 정확한 일치를 조사하고 name+* 형식 일치를 조사한 다음 이름 부분에 대해서만 일치를 조사하도록 MTA에 지시합니다. subaddressrelaxed를 사용하면 다음 형식의 별칭 항목이 name 또는 name+subaddress와 일치되고, 일반 이름이 새 이름으로 변환되며, name+subaddress가 newname+subaddress로 변환됩니다. 기본값은 subaddressrelaxed 키워드입니다.
name: newname+*
따라서 subaddresswild 키워드 또는 subaddressrelaxed 키워드는 별칭 또는 디렉토리 채널이 사용 중이지만 임의의 하위 주소를 사용하여 주소가 지정된 메일을 받으려는 경우에 유용할 수 있습니다. 이러한 키워드를 사용하면 주소에서 단일 하위 주소 변형마다 별도의 항목을 둘 필요가 없습니다.
이러한 키워드는 로컬 채널(UNIX의 L 채널) 또는 aliaslocal 키워드로 표시한 채널에만 적용됩니다.
표준 Messaging Server 구성은 실제로 subaddressrelaxed 동작을 하는 L 채널에서 중계됩니다(기본적으로 다른 키워드를 명시하지 않은 경우).
rules 키워드는 이 채널에 대해 채널별 다시 쓰기 규칙 검사를 실행하도록 MTA에 지시합니다. 기본값입니다. norules 키워드는 이 채널을 검사하지 않도록 MTA에 지시합니다. 이 두 키워드는 일반적으로 디버깅하는 데 사용되고 실제 응용 프로그램에서는 거의 사용되지 않습니다.
dequeue_removeroute 키워드는 메일을 대기열에서 제거할 때 소스 경로를 봉투의 To: 주소에서 제거합니다. 이 키워드는 현재 tcp-* 채널에서만 구현됩니다. 또한, 소스 경로를 올바르게 처리하지 못하는 시스템에 메일을 전송할 때 유용합니다.
키워드: viaaliasoptional, viaaliasrequired
viaaliasrequired는 채널과 일치하는 최종 수신자 주소를 별칭을 통해 생성해야 함을 지정합니다. 최종 수신자 주소는 별칭 확장(해당하는 경우)이 수행된 이후의 일치를 참조합니다. 주소를 MTA에 수신자 주소로 직접 전달할 수 없습니다. 즉, 주소를 채널에 다시 쓰는 것만으로는 부족합니다. 채널에 다시 쓴 후 별칭을 통해 주소를 확장해야 채널과 일치하는 것으로 간주됩니다.
예를 들어, 로컬 채널에서 viaaliasrequired 키워드를 사용하여 임의의 계정(예: UNIX 시스템에서 임의의 원시 Berkeley 메일함)에 전달하지 못하게 할 수 있습니다.
기본값은 viaaliasoptional이며 별칭을 사용하여 채널과 일치하는 최종 수신자 주소를 생성할 필요가 없음을 의미합니다.
이 절에서는 헤더 및 봉투 정보를 처리하는 키워드에 대해 설명합니다. 이 장은 다음 내용으로 구성되어 있습니다.
필요한 경우에만 헤더 행의 내용을 해석합니다. MIME 메일은 메일 내부에 메일을 포함하는 기능이 있기 때문에 여러 메일 헤더 집합을 포함할 수 있습니다(메일/RFC822). MTA는 일반적으로 가장 외부에 있는 메일 헤더 집합만 해석하고 다시 씁니다. 메일의 내부 헤더에도 헤더 다시 쓰기를 적용하도록 MTA에 선택적으로 지시할 수 있습니다.
이 동작은 noinner 및 inner 키워드에 의해 제어됩니다. noinner 키워드는 내부 메일 헤더 행을 다시 쓰지 않도록 MTA에 지시하는 기본값입니다. inner 키워드는 메일의 구문을 분석하고 내부 헤더를 다시 쓰도록 MTA에 지시합니다. 이러한 키워드는 모든 채널에 적용될 수 있습니다.
키워드: headertrim, noheadertrim, headerread, noheaderread, innertrim noinnertrim
MTA는 메일에서 선택한 메일 헤더 행을 잘라내거나 제거하기 위한 채널 단위 기능을 제공합니다. 이 작업은 채널 키워드와 관련 헤더 옵션 파일을 조합하거나 두 가지를 모두 사용하여 수행됩니다. 헤더 옵션 파일 형식에 대해서는 Sun Java System Messaging Server 6 2005Q4 Administration Reference의 Header Option Files에 설명되어 있습니다.
headertrim 키워드는 원본 메일 헤더를 처리한 후에 채널과 연결된 헤더 옵션 파일을 참조하여 해당 대상 채널의 대기열에 포함된 메일의 헤더를 적절하게 잘라내도록 MTA에 지시합니다. noheadertrim 키워드는 헤더 자르기를 수행하지 않습니다. 기본값은 noheadertrim 키워드입니다.
innertrim 키워드는 내부 메일 부분(내장된 MESSAGE/RFC822 부분)에서도 헤더 자르기를 수행하도록 MTA에 지시합니다. 기본값인 noinnertrim 키워드는 내부 메일 부분에서 헤더 자르기를 수행하지 않도록 MTA에 지시합니다.
headerread 키워드는 원본 메일 헤더를 처리하기 전에 채널과 연결된 헤더 옵션 파일을 참조하여 해당 소스 채널에 의해 대기열에 포함된 메일의 헤더를 적절하게 잘라내도록 MTA에 지시합니다. 반면에 headertrim 헤더 자르기는 메일을 처리한 이후에 적용되며 소스 채널이 아니라 대상 채널입니다. noheaderread 키워드는 메일 대기열이 포함된 헤더 자르기를 수행하지 않습니다. 기본값은 noheaderread입니다.
headeromit 및 headerbottom 키워드와 달리 headertrim 및 headerread 키워드는 모든 채널에 적용될 수 있습니다. 메일에서 필수 헤더 정보를 스트라이프하면 MTA 작업이 잘못 수행될 수 있습니다. 따라서 제거하거나 제한할 헤더를 선택할 경우 각별히 주의하십시오. 이 기능은 선택한 헤더 행을 제거하거나 제한해야 할 경우를 위해 제공됩니다.
메일에서 헤더 정보를 스트라이프하면 MTA 작업이 잘못 수행될 수 있습니다. 따라서 제거하거나 제한할 헤더를 선택할 경우 주의하십시오. 이러한 키워드는 선택한 헤더 행을 제거하거나 제한해야 할 경우를 위해 제공됩니다. 헤더 행을 자르거나 제거하기 전에 해당 헤더의 사용법을 이해하고 제거의 함축된 의미를 고려해야 합니다.
headertrim 및 innertrim 키워드의 헤더 옵션 파일에는 채널이 있는 channel_headers.opt 형식 이름과 헤더 옵션 파일이 연결되는 채널 이름이 있습니다. 마찬가지로 headerread 키워드의 헤더 옵션 파일에는 channel_read_headers.opt 형식의 이름이 있습니다. 이러한 파일은 MTA 구성 디렉토리인 instance_root/imta/config/에 저장됩니다.
x_env_to 및 nox_env_to 키워드는 특정 채널의 대기열에 포함된 메일 복사본에서 X-Envelope-to 헤더 행의 생성 또는 억제를 제어합니다. single 키워드로 표시한 채널에서 x_env_to 키워드는 이러한 헤더를 생성하고 nox_env_to 키워드는 대기열에 포함된 메일에서 해당 헤더를 제거합니다. 기본값은 nox_env_to입니다.
x_env_to 키워드를 적용하려면 single 키워드가 필요합니다.
원본 RFC 822 사양은 메일 헤더의 날짜 필드에서 두 자리 연도를 호출합니다. 이 연도 표시는 이후에 RFC 1123에서 네 자리로 변경되었지만, 일부 이전 메일 시스템에서는 네 자리 날짜를 사용할 수 없습니다. 또한, 일부 최신 메일 시스템에서는 두 자리 날짜를 더 이상 받아들이지 없습니다.
두 형식을 모두 처리할 수 없는 시스템은 표준 위반입니다.
datefour 및 datetwo 키워드는 메일 헤더 날짜에서 MTA의 연도 필드 처리를 제어합니다. 기본값인 datefour 키워드는 모든 연도 필드를 네 자리로 확장하도록 MTA에 지시합니다. 50보다 작은 두 자리 날짜에는 2000이 추가되고 50보다 큰 값에는 1900이 추가됩니다.
datetwo 키워드는 네 자리 날짜에서 앞의 두 자리를 제거하도록 MTA에 지시합니다. 이 키워드는 두 자리 날짜를 필요로 하는 호환되지 않는 메일 시스템과 호환성을 제공하기 위한 것입니다. 이외의 다른 목적으로 사용해서는 안 됩니다.
RFC 822 사양은 메일 헤더의 날짜 필드에서 선행 요일 사양에 허용됩니다. 요일 정보를 적용할 수 없는 시스템도 있습니다. 따라서 요일 정보를 헤더에 표시하면 매우 유용하기는 하지만 일부 시스템에서는 이 정보를 포함하기를 꺼리게 됩니다.
dayofweek 및 nodayofweek 키워드는 MTA의 요일 정보 처리를 제어합니다. 기본값인 dayofweek 키워드는 요일 정보를 유지하고 날짜 및 시간 헤더에 이 정보를 추가(없는 경우)하도록 MTA에 지시합니다.
nodayofweek 키워드는 날짜 및 시간 헤더에서 선행 요일 정보를 제거하도록 MTA에 지시합니다. 이 키워드는 이 정보를 제대로 처리할 수 없는 호환되지 않는 메일 시스템과 호환성을 제공하기 위한 것입니다. 이외의 다른 목적으로 사용해서는 안 됩니다.
키워드: maxheaderaddrs, maxheaderchars
일부 메일 전송 프로그램 특히, 일부 sendmail 구현에서는 긴 헤더 행을 제대로 처리할 수 없습니다. 이로 인해 헤더가 손상되지는 않지만 잘못된 메일 거부를 초래할 수 있습니다. 이는 총체적인 표준 위반이지만 일반적인 문제이기도 합니다.
MTA는 긴 헤더 행을 독립된 여러 헤더 행으로 분할하기 위한 채널 단위 기능을 제공합니다. maxheaderaddrs 키워드는 한 행에 표시할 수 있는 주소 수를 제어합니다. maxheaderchars 키워드는 한 행에 표시할 수 있는 문자 수를 제어합니다. 두 키워드 모두 연관된 제한을 지정하는 단일 정수 매개 변수를 필요로 합니다. 기본적으로 헤더 행의 길이와 표시할 수 있는 주소 수에는 제한이 적용되지 않습니다.
키워드: headerlabelalign, headerlinelength
headerlabelalign 키워드는 이 채널의 대기열에 포함된 메일 헤더에 대한 맞춤 점을 제어합니다. 맞춤 점은 정수 값 인수를 가집니다. 맞춤 점은 헤더 내용이 정렬되는 여백입니다. 예를 들어, 맞춤 점이 10인 샘플 헤더 행의 모양은 다음과 같습니다.
To: joe@siroe.com From: mary@siroe.com Subject: Alignment test |
기본 headerlabelalign은 0이고 헤더가 정렬되지 않습니다. headerlinelength 키워드는 이 채널의 대기열에 포함된 메일 헤더 행의 길이를 제어합니다. 이 키워드보다 더 긴 행은 RFC 822 접기 규칙에 따라 접힙니다.
이러한 키워드는 메일 대기열에 있는 메일 헤더의 형식만 제어합니다. 헤더의 실제 디스플레이는 일반적으로 사용자 에이전트에 의해 제어됩니다. 또한, 인터넷을 통해 전송할 경우 일반적으로 헤더의 형식이 다시 지정되기 때문에 이러한 키워드는 메일 헤더의 형식을 다시 지정하지 못하는 단순 사용자 에이전트와 함께 사용하더라도 가시적인 효과가 없을 수 있습니다.
많은 주소를 포함하는 긴 헤더 행을 처리하려면 많은 시스템 자원을 사용할 수 있습니다. maxprocchars 키워드는 MTA가 처리하고 다시 쓸 수 있는 최대 길이 헤더를 지정하는 데 사용됩니다. 이 키워드보다 더 긴 헤더를 지닌 메일도 허용되고 전달됩니다. 긴 헤더 행을 어떠한 식으로도 다시 쓰지 않는다는 점만 차이가 납니다. 단일 정수 인수가 필요하며 기본값은 모든 길이의 헤더를 처리합니다.
키워드: sensitivitynormal, sensitivitypersonal, sensitivityprivate sensitivitycompanyconfidential
민감도 검사 키워드는 채널에 허용될 수 있는 메일 민감도에 대한 최대값을 설정합니다. 기본값은 sensitivitycompanyconfidential이며 모든 민감도의 메일이 허용됩니다. Sensitivity: 헤더가 없는 메일은 보통(가장 낮은 민감도)으로 간주됩니다. 그런 키워드에 의해 지정된 것보다 더 높은 민감도를 갖는 메일은 채널의 대기열에 포함되면 거부되고 다음과 같은 오류 메시지가 표시됩니다.
message too sensitive for one or more paths used
MTA는 이러한 민감도 검사를 수신자 단위가 아니라 메일 단위로 수행합니다. 한 수신자의 대상 채널에서 민감도 검사에 실패할 경우 해당 메일은 해당 민감도 채널에 연결된 수신자뿐만 아니라 모든 수신자에게 전달됩니다.
헤더의 인코딩된 단어는 특정 언어를 가질 수 있습니다. language 키워드는 기본 언어를 지정합니다.
이 절에서는 첨부 파일 및 MIME 처리를 수행하는 키워드에 대해 설명합니다. 이 장은 다음 내용으로 구성되어 있습니다.
키워드: ignoreencoding, interpretencoding
MTA는 Yes CHARSET-CONVERSION을 사용하여 다양한 비표준 메일 형식을 MIME으로 변환할 수 있습니다. 특히, RFC 1154 형식에서는 비표준 Encoding: 헤더 행을 사용할 수 있습니다. 일부 게이트웨이에서는 이 헤더 행에 잘못된 정보를 생성하므로 이러한 헤더 행을 무시해야 할 경우도 종종 있습니다. ignoreencoding 키워드는 Encoding: 헤더 행을 무시하도록 MTA에 지시합니다.
MTA에 CHARSET-CONVERSION이 사용되지 않는 경우 이러한 헤더는 항상 무시됩니다. interpretencoding 키워드가 기본값이며 이 키워드는 Encoding: 헤더 행에 주의하도록 MTA에 지시합니다(다르게 지시되지 않을 경우).
MIME 표준은 메일을 더 작은 여러 부분으로 분할하기 위한 메일/부분 내용 유형을 제공합니다. 이 기능은 크기 제한이 있는 네트워크를 선회하거나 메일 조각화에서 “검사점 지정” 형식을 제공할 수 있는 불안정한 네트워크를 선회해야 하는 경우에 유용합니다. 그렇게 하면 메일 전송 중에 네트워크 오류가 발생하더라도 중복된 작업을 줄일 수 있습니다. 메일이 대상에 도착한 이후에 자동으로 다시 어셈블할 수 있도록 각 부분에 정보가 포함됩니다.
defragment 채널 키워드 및 조각 모음 채널을 사용하여 MTA에서 메일을 다시 어셈블할 수 있습니다. 채널에 defragment 표시가 있는 경우 채널의 대기열에 포함된 부분 메일이 조각 모음 채널 대기열에 대신 포함됩니다. 모든 부분이 도착하면 메일이 다시 작성되어 대상 위치로 보내집니다. nodefragment는 이 특수 처리를 사용하지 않습니다. 기본값은 nodefragment 키워드입니다.
메일은 제한된 시간 동안만 조각 모음 채널 대기열에 보존됩니다. 첫 번째 배달 실패 알림을 보내도록 지정된 시간의 1/2이 경과하면 메일의 다양한 부분을 다시 어셈블하지 않고 보냅니다. 이 시간 값 선택은 조각 모음 채널 대기열의 메일에 대한 배달 실패 알림을 보내지 않게 합니다.
notices 채널 키워드는 배달 실패 알림을 보내기 전에 경과할 수 있는 시간을 제어하며, 부분적으로 보내기 전에 메일이 보존되는 시간을 제어합니다. notices 키워드 값을 가능한 조각 모음에 대해 메일을 보존하려는 시간의 2배로 설정합니다. 예를 들어, notices 값을 4로 설정하면 메일 조각 모음이 2일 동안 보존됩니다.
defragment notices 4 DEFRAGMENT-DAEMON |
일부 메일 시스템 또는 네트워크 전송 프로그램은 특정 크기 제한을 초과하는 메일을 처리할 수 없습니다. MTA는 채널 단위로 제한을 적용하는 기능을 제공합니다. 설정된 제한보다 큰 메일은 여러 개의 작은 메일로 자동으로 분할(조각화)됩니다. 그런 조각화에 사용되는 내용 유형은 message/partial이며, 동일한 메일의 각 부분이 서로 연결된 다음 받는 메일 프로그램에 의해 자동으로 다시 어셈블되도록 고유한 아이디 매개 변수가 추가됩니다.
maxblocks 및 maxlines 키워드는 자동 조각화가 활성화되는 크기 제한을 적용하는 데 사용됩니다. 이 두 키워드의 뒤에는 단일의 정수 값이 있어야 합니다. maxblocks 키워드는 메일에 허용되는 최대 블록 수를 지정합니다. MTA 블록은 일반적으로 1024바이트이지만 MTA 옵션 파일의 BLOCK_SIZE 옵션으로 변경할 수 있습니다. maxlines 키워드는 메일에 허용되는 최대 행 수를 지정합니다. 필요한 경우 이 두 제한을 동시에 적용할 수 있습니다.
메일 헤더는 메일 크기에 어느 정도까지는 포함됩니다. 메일 헤더는 여러 메일로 분할될 수 없고 지정된 크기 제한을 초과할 수 없기 때문에 메일 헤더 크기에는 매우 복잡한 기법이 사용됩니다. 이 논리는 MTA 옵션 파일의 MAX_HEADER_BLOCK_USE 및 MAX_HEADER_LINE_USE 옵션에 의해 제어됩니다.
MAX_HEADER_BLOCK_USE는 0과 1 사이의 실수를 지정하는 데 사용되며 기본값은 0.5입니다. 메일 헤더는 메일이 사용할 수 있는 총 블록 수(maxblocks 키워드에 의해 지정)만큼 차지할 수 있습니다. 메일 헤더가 긴 경우 MTA는 MAX_HEADER_BLOCK_USE 및 maxblocks를 헤더(헤더 크기는 실제 헤더 크기와 maxblocks 중 더 작은 부분임) * MAX_HEADER_BLOCK_USE의 크기로 생성합니다.
예를 들어, maxblocks가 10이고 MAX_HEADER_BLOCK_USE가 기본값 0.5인 경우 5블록보다 더 큰 메일 헤더는 5블록 헤더로 취급되고, 메일의 크기가 5블록 이하일 경우 조각화되지 않습니다. 값이 0인 경우에는 헤더가 메일 크기 제한에서 무시됩니다.
값이 1인 경우 헤더에 사용 가능한 최대 크기까지 사용할 수 있습니다. 각 조각은 제한을 초과하는지 여부에 관계 없이 항상 메일 내용의 한 행 이상을 포함하고 있어야 합니다. MAX_HEADER_LINE_USE는 maxlines 키워드와 비슷한 방식으로 동작합니다.
SMTP 사양은 최대 1,000바이트를 포함하는 텍스트 행에 사용할 수 있습니다. 보다 엄격한 행 길이 제한이 적용되는 전송 프로그램도 있습니다. linelength 키워드는 채널 단위로 최대 허용 가능한 메일 행 길이를 제한하는 기법을 제공합니다. 지정된 채널의 대기열에 포함되고 행 길이가 해당 채널에 지정된 제한보다 더 긴 메일은 자동으로 인코딩됩니다.
MTA에서 사용할 수 있는 다양한 인코딩은 항상 행 길이를 80자 미만으로 줄입니다. 그런 인코딩을 수행한 후 해당 디코딩 필터를 적용하여 원본 메일을 복구할 수 있습니다.
인코딩은 행 길이를 80자 미만으로 줄일 수만 있습니다. 80자 미만의 행 길이 값을 지정하면 명시된 제한에 맞는 길이의 행이 생성되지 않을 수 있습니다.
linelength 키워드는 전송을 위해 데이터 인코딩에서 “소프트” 줄 바꿈을 수행하게 합니다. 인코딩은 일반적으로 수신하는 쪽에서 디코딩하여 원래의 “긴” 행을 복구합니다. “하드” 줄 바꿈에 대한 자세한 내용은 표 13–7의 “레코드, 텍스트”를 참조하십시오.
이 절에서는 메일 크기 제한, 사용자 할당량 및 권한을 설정하는 키워드에 대해 설명합니다. 이 장은 다음 내용으로 구성되어 있습니다.
이 키워드는 세션의 연결이 끊어지기 전에 세션에 허용되는 인증 시도의 실패 횟수를 제한하는 데 사용할 수 있습니다. 이 옵션의 기본값은 3입니다.
키워드: blocklimit, noblocklimit, linelimit, nolinelimit, sourceblocklimit
조각화를 사용하면 메일을 작은 여러 조각으로 자동으로 분할할 수 있지만 관리상의 목적(예: 서비스 거부 공격 방지)으로 정의한 제한보다 더 큰 메일은 거부하는 것이 좋은 경우도 있습니다.
blocklimit, linelimit 및 sourceblocklimit 키워드는 절대 크기 제한을 적용하는 데 사용됩니다. 각 키워드의 뒤에는 단일의 정수 값이 있어야 합니다.
blocklimit 키워드는 메일에 허용되는 최대 블록 수를 지정합니다. MTA는 이 값보다 더 많은 블록을 포함하는 메일을 채널의 대기열에 넣으려는 시도를 거부합니다. MTA 블록은 일반적으로 1024바이트이지만 MTA 옵션 파일의 BLOCK_SIZE 옵션으로 변경할 수 있습니다.
sourceblocklimit 키워드는 받는 메일에 허용되는 최대 블록 수를 지정합니다. MTA는 이 값보다 더 많은 블록을 포함하는 메일을 채널에 제출하려는 시도를 거부합니다. 다시 말해서 blocklimit는 대상 채널에 적용되고 sourceblocklimit는 소스 채널에 적용됩니다. MTA 블록은 일반적으로 1024바이트이지만 MTA 옵션 파일의 BLOCK_SIZE 옵션으로 변경할 수 있습니다.
사용자 LDAP 속성을 MTA 옵션 LDAP_SOURCEBLOCKLIMIT에 지정하고 이 속성을 보낸 사람의 LDAP 항목에 추가하여 보낸 사람 단위로 소스 블록 제한을 지정할 수도 있습니다. 또한 소스 블록 제한이 보낸 사람의 도메인을 기반으로 지원되기도 합니다. 도메인 LDAP 속성을 MTA 옵션 LDAP_DOMAIN_ATTR_SOURCEBLOCKLIMIT에 지정하고 이 속성을 보낸 사람의 도메인 LDAP 항목에 추가합니다. 이러한 값은 모두 기본값이 없습니다.
linelimit 키워드는 메일에 허용되는 최대 행 수를 지정합니다. MTA는 이 행 수보다 더 많은 행을 포함하는 메일을 채널의 대기열에 넣으려는 시도를 거부합니다. 필요한 경우 blocklimit 키워드와 linelimit 키워드를 동시에 적용할 수 있습니다.
MTA 옵션 LINE_LIMIT 및 BLOCK_LIMIT를 사용하여 모든 채널에 비슷한 제한을 적용할 수 있습니다. 이러한 제한은 모든 채널에 적용할 수 있다는 장점이 있습니다. 따라서 MTA 서버는 메일 수신자 정보를 가져오기 전에 해당 제한을 메일 클라이언트에게 알릴 수 있습니다. 이 기능은 일부 프로토콜에서 메일 거부 프로세스를 단순화합니다.
기본값은 nolinelimit 및 noblocklimit 채널 키워드이며 제한이 적용되지 않음을 의미합니다. 전역 제한은 LINE_LIMIT 또는 BLOCK_LIMIT MTA 옵션을 통해 적용됩니다.
키워드: alternatechannel, alternateblocklimit , alternatelinelimit, alternaterecipientlimit
MTA는 수신자 수, 메일 크기, 메일 행 수 등에 대한 지정된 제한을 초과하는 메일의 대상을 대체 대상 채널로 다시 지정하는 기능을 제공합니다. 이 기능은 대상 채널에 포함될 수 있는 alternatechannel, alternateblocklimit, alternatelinelimit 및 alternaterecipientlimit 채널 키워드 집합으로 구현됩니다. alternatechannel 키워드는 사용할 대체 채널의 이름을 지정하는 단일 인수를 가집니다. 다른 키워드는 각각 해당 임계값을 지정하는 정수 인수를 갖습니다. 이러한 임계값을 초과하는 메일은 원본 대상 채널 대신 대체 채널의 대기열에 포함됩니다.
다음 채널 블록 예에서는 인터넷의 tcp_local 채널로 이동해야 하는 5,000개 이상의 블록을 가진 대용량 메일이 tcp_big 채널로 대신 이동됩니다.
tcp_local smtp ...other keywords... alternatechannel tcp_big alternateblocklimit 5 tcp-daemon tcp_big smtp ...rest of keywords... tcp-big-daemon |
다음 예는 alternate* 채널 키워드를 사용하는 방법을 보여 줍니다.
대용량 메일을 지연된 시간이나 한가한 시간에 전달하려면 alternatechannel(예: tcp_big)이 실행되는 시간을 제어할 수 있습니다.
한 가지 방법은 imsimta qm 유틸리티의 STOP channel_name 및 START channel_name 명령을 사용하는 것입니다. 이러한 명령은 Job Controller가 실행하 는 사용자 정의 정기 작업 또는 cron 작업을 통해 주기적으로 실행됩니다.
Job Controller가 대용량 메일이나 많은 수신자를 갖는 메일을 자체 풀에서 처리하려면 alternatechannel을 사용할 수도 있습니다.
대용량 메일이나 많은 수신자를 갖는 메일은 원격 SMTP 서버에서 처리하고 받는 데 더 많은 시간이 걸리기 때문에 대용량 메일이 작은 메일의 전달을 지연하지 않도록 작은 메일이나 수신자가 적은 메일을 그러한 메일과 구분할 수 있습니다.
Job Controller의 정기 메일 일정 예약 및 스레드 및 프로세스에 대한 메일 할당 작업은 대부분의 구성에서 허용됩니다.
대용량 메일 또는 수신자가 많은 메일에 대한 특수 TCP/IP 채널 시간 초과 값을 설정하려면 alternatechannel을 사용할 수 있습니다.
특히, 특수 TCP/IP 채널 시간 초과 값 설정은 대용량 메일 또는 수신자가 많은 메일을 받는 데 지나치게 많은 시간이 걸리는 원격 호스트에 메일을 보내려는 경우에 유용할 수 있습니다.
대부분의 구성에서는 기본 자동 시간 초과 조정으로 충분합니다. 사용자는 기본값에서 값을 조정할 수만 있고 특수 채널은 사용할 수 없습니다. Sun Java System Messaging Server 6 2005Q4 Administration Reference의 STATUS_DATA_RECV_PER_ADDR_TIME 및 STATUS_DATA_RECV_PER_BLOCK_TIME 채널 옵션을 참조하십시오.
매우 긴 메일에 대해 특수 MIME 메일 조각화를 수행하려면 alternatechannel 및 alternateblocklimit 채널 키워드를 maxblocks 채널 키워드와 함께 사용할 수 있습니다.
일반적으로 지정한 크기를 넘는 메일을 조각화하려면 일반 아웃바운드 TCP/IP 채널에 원하는 maxblocks 크기를 입력합니다. maxblocks 채널 키워드는 조각화를 수행하는 임계값이자 조각을 만들 크기입니다.
더 큰 임계값을 트리거하고 더 작은 조각을 만들려면 아웃바운드 TCP/IP 채널에서 alternatechannel 및 alternateblocklimit를 사용할 수 있습니다. 그런 다음 대체 채널에서 maxblock 크기를 사용하여 특정 크기를 넘는 메일을 조각화할 수 있습니다.
alternatechannel을 특수 필터링과 함께 사용할 수 있습니다. 예를 들어, 수신자가 많은 메일은 스팸인 경우 내용을 보다 주의깊게 조사해야 합니다. 보내는 채널을 기준으로 서로 다른 필터링을 수행할 수 있습니다( 메일함 필터 파일 위치 지정의 destinationfilter 채널 키워드 참조).
변환 채널을 통해 상대적으로 자원을 많이 사용하는 스캔(예: 바이러스 필터링)을 수행할 경우 매우 큰 메일에서 자원 문제가 발생할 수 있습니다. 대체 변환 채널을 사용할 수 있습니다. 또는 보내는 채널을 기준으로 일반 변환 채널 내에서 특수 변환 절차를 수행할 수 있습니다.
대용량의 보내는 메일을 자체 채널로 보내려면 alternatechannel을 사용하여 mail.log* 파일 분석 또는 카운터 표시에서 제외할 수 있습니다.
또한, 전달 통계를 주의깊게 분석할 경우 자체 채널에서 대용량 메일을 처리하는 것이 좋습니다. 원격 SMTP 호스트에 보내는 대용량 메일이나 수신자가 많은 메일은 처리를 완료하는 데 더 많은 시간이 걸리므로 대용량 메일에 대해서는 일반 메일과 다른 전달 통계를 생성하기 때문입니다.
noexquota 및 holdexquota 키워드는 디스크 할당량이 초과된 Berkeley 메일함 사용자(UNIX) 즉, uid 대체 채널에 전달되는 사용자로 주소가 지정된 메일의 처리를 제어합니다.
noexquota는 할당량을 초과한 사용자에게 보내는 메일을 메일 발송자에게 반환하도록 MTA에 지시합니다. holdexquota는 할당량을 초과한 사용자에게 보내는 메일을 보관하도록 MTA에 지시합니다. 그런 메일은 전달이 가능할 때까지 또는 시간이 초과되어 메일 반환 작업에 의해 보낸 사람에게 반환될 때까지 MTA 대기열에 남아 있습니다.
키워드: rejectsmtplonglines, wrapsmtplonglines, truncatesmtplonglines
rejectsmtplonglines는 SMTP에서 허용되는 1000자(CRLF 포함)보다 긴 행이 포함된 메일을 거부하는 옵션을 추가합니다. 이 영역의 다른 옵션에는 아주 긴 행을 줄 바꿈하는 wrapsmtplonglines, 아주 긴 행을 자르는 truncatesmtplonglines 등이 있습니다. 이러한 키워드는 둘 다 제출에 사용되는 초기 채널(예: tcp_local)에 적용해야 합니다. 이후에 전환되는 채널에는 영향을 주지 않습니다.
키워드: parameterlengthlimit and nameparameterlengthlimit
parameterlengthlimit는 일반 content-type 및 content-disposition 매개 변수가 잘리는 지점을 제어합니다. 기본값은 1024입니다. nameparameterlengthlimit는 name content-type 및 filename content-disposition 매개 변수가 잘리는 지점을 제어합니다. 기본값은 128입니다. 메일에서 MIME 처리가 수행되지 않을 경우 가장 외부에 있는 메일 헤더만 처리됩니다. MIME 처리는 inner 키워드나 문자 세트 변환 사용 등과 같은 다양한 방법으로 사용 가능하게 할 수 있습니다.
키워드: recipientlimit and recipientcutoff
recipientlimit는 메일에 대해 허용할 총 수신자 주소 수를 지정합니다. recipientcutoff는 MTA에 제공된 수신자의 총 수를 지정된 값과 비교합니다. 이 값이 지정된 제한을 초과하면 메일 전달이 허용되지 않습니다. 두 키워드는 모두 단일 정수 인수를 가집니다. 해당 채널 키워드를 지정하지 않은 경우 두 키워드의 기본값은 제한이 없습니다.
보낸 사람이나 보낸 사람의 도메인에 수신자 제한을 설정할 수도 있습니다. 이렇게 하려면 적절한 MTA 옵션(LDAP_RECIPIENTLIMIT, LDAP_RECIPIENTCUTOFF, LDAP_DOMAIN_ATTR_RECIPIENTLIMIT, LDAP_DOMAIN_ATTR_RECIPIENTCUTOFF)에 사용자 또는 도메인 LDAP 속성을 지정하고 해당 속성을 보낸 사람의 사용자 항목이나 도메인 항목에 추가합니다.
가장 외부에 있는 주 메일 헤더의 최대 크기에 제한을 부과합니다. 주 메일 헤더가 지정된 한계에 이르면 자동으로 잘립니다. 전역 MTA 옵션 HEADER_LIMIT를 설정하면 이 옵션이 이러한 채널 수준 제한을 대체합니다. 기본값은 제한 없음입니다.
이 절에서는 MTA 대기열에서 파일 만들기를 지정하여 디스크 자원을 제어할 수 있는 키워드에 대해 설명합니다. 이 장은 다음 내용으로 구성되어 있습니다.
키워드: multiple, addrsperfile, single, single_sys
MTA에서는 대기열에 포함된 각 메일에 여러 대상 주소를 표시할 수 있습니다. 일부 채널 프로그램은 수신자가 한 명이거나, 수신자의 수가 제한되었거나, 메일 복사본당 하나의 대상 시스템이 있는 메일만 처리할 수 있습니다. 예를 들어, SMTP 채널 마스터 프로그램은 지정된 트랜잭션에 있는 단일 원격 호스트에 대해서만 연결을 설정하기 때문에 해당 호스트의 주소만 처리할 수 있습니다. 그럼에도 불구하고 모든 SMTP 트래픽에 단일 채널이 일반적으로 사용됩니다.
또 다른 예로 일부 SMTP 서버는 한 번에 처리할 수 있는 수신자 수에 대한 제한을 적용할 수 있지만 이 오류 유형을 처리할 수 없습니다.
multiple, addrsperfile, single 및 single_sys 키워드를 사용하여 여러 주소를 처리하는 방법을 제어할 수 있습니다. single 키워드는 채널의 각 대상 주소에 대해 별도의 메일 복사본을 만들어야 함을 의미합니다. Job Controller가 트래픽을 관리하는 방법을 변경하고 일반 SMTP 시나리오에 적합하지 않으므로 tcp_* 채널에서 single을 사용하지 않는 것이 좋습니다. single_sys 키워드는 사용된 각 대상 시스템에 대해 단일의 메일 복사본을 만듭니다. 기본값인 multiple 키워드는 전체 채널에 대해 단일의 메일 복사본을 만듭니다.
사용된 키워드에 관계 없이 메일이 대기열에 있는 각 채널에 대해 해당 메일 복사본을 하나 이상 만듭니다.
addrsperfile 키워드는 채널 대기열의 단일 메일 파일에 연결될 수 있는 최대 수신자 수에 대한 제한을 적용하여 단일 작업에서 처리되는 수신자 수를 제한하는 데 사용됩니다. 이 키워드에는 메일 파일에 허용되는 최대 수신자 주소 수를 지정하는 단일의 정수 인수가 필요합니다. 이 수에 도달하면 MTA는 자동으로 추가 메일 파일을 생성하여 해당 주소를 수용합니다. 기본 multiple 키워드는 일반적으로 메일 파일에 수신자 수 제한을 적용하지 않습니다. SMTP 채널의 기본값은 99입니다.
기본적으로 채널의 대기열에 포함된 모든 메일은 /imta/queue/channel-name 디렉토리에 파일로 저장됩니다. 여기서 channel-name은 채널의 이름입니다. 그러나, 많은 수의 메일을 처리하고 처리 대기 중에 대용량 메일 파일 저장소를 생성하는 채널(예: TCP/IP 채널)의 경우 해당 메일 파일을 여러 하위 디렉토리로 분산하여 파일 시스템의 성능을 향상시킬 수 있습니다. subdirs 채널 키워드의 뒤에는 채널에 대한 메일을 분산할 하위 디렉토리의 수를 지정하는 정수가 와야 합니다. 예를 들면 다음과 같습니다.
tcp_local single_sys smtp subdirs 10
키워드: disconnectbadcommandlimit, disconnectrecipientlimit, disconnectrejectlimit, disconnecttransactionlimit
네 개의 새로운 채널 키워드는 일정한 수의 오류가 감지된 후에 SMTP 서버가 클라이언트 와의 연결을 끊을 수 있는 기능을 제공합니다.
disconnectrecipientlimit - 세션 수신자의 수를 제한합니다.
disconnectrejectlimit - 거부된 수신자의 수를 제한합니다.
disconnecttransactionlimit - 트랜잭션 수를 제한합니다.
disconnectbadcommandlimit - 잘못된 명령의 수를 제한합니다.
이러한 키워드는 모두 세션 제한입니다. disconnectbadcommandlimit를 제외하고 이러한 제한은 모두 MAIL FROM 또는 RSET 명령이 실행될 때 확인됩니다. 이러한 제한 중 하나라도 초과하면 서버는 4xy 오류를 표시하고 연결을 끊습니다. 잘못된 명령 제한은 잘못된 명령이 실행될 때 확인된다는 점만 다릅니다.
이 절에서는 로깅 및 디버깅 키워드에 대해 설명합니다.
키워드: logging, nologging, logheader
MTA는 대기열에 포함될 때와 대기열에서 제거될 때 각 메일을 로깅하는 기능을 제공합니다. logging 및 nologging 키워드는 메일 로깅을 채널 단위로 제어합니다. 기본적으로 초기 구성에서는 모든 채널에 대해 로깅을 설정합니다. 채널 정의에서 nologging 키워드를 대체하여 특정 채널에 대해 로깅을 비활성화할 수 있습니다.
logheader는 채널 단위로 LOG_HEADER MTA 옵션을 무시합니다. 기본값인 0은 메일 헤더 로깅을 사용하지 않도록 설정합니다. 자세한 내용은 Sun Java System Messaging Server 6 2005Q4 Administration Reference의 Option File을 참조하십시오.
로깅에 대한 자세한 내용은 21 장, 로깅 관리을 참조하십시오.
키워드: master_debug, slave_debug, nomaster_debug, noslave_debug
일부 채널 프로그램에는 추가 진단 출력을 생성하여 디버깅을 도와주는 선택 코드가 포함되어 있습니다. 채널 단위로 이 디버깅 출력을 생성하는 데 사용하는 두 채널 키워드가 제공됩니다. 마스터 프로그램에서 디버깅 출력을 생성하는 master_debug 키워드와 슬레이브 프로그램에서 디버깅 출력을 생성하는 slave_debug 키워드입니다. nomaster_debug 및 noslave_debug에 따라 두 개 디버깅 출력 유형은 기본적으로 사용되지 않습니다.
활성화된 디버깅 출력은 채널 프로그램과 연결된 로그 파일에서 끝납니다. 로그 파일의 위치는 프로그램에 따라 다릅니다. 로그 파일은 일반적으로 로그 디렉토리에 보관됩니다. 마스터 프로그램의 로그 파일 이름은 일반적으로 x_master.log 형식입니다. 여기서 x는 채널 이름입니다. 슬레이브 프로그램의 로그 파일 이름은 일반적으로 x_slave.log 형식입니다.
UNIX에서 l 채널에 대해 master_debug 및 slave_debug를 활성화하면 MTA 디버그 정보가 들어 있는 현재 디렉토리(디렉토리에 쓰기 권한이 있는 경우. 쓰기 권한이 없는 경우 디버그 출력이 stdout으로 이동됨)에 imta_sendmail.log-uniqueid 파일이 생성됩니다.
loopcheck 키워드는 MTA가 자체적으로 통신하는지 확인하도록 SMTP EHLO 응답 배너에 문자열을 넣습니다. loopcheck를 설정하면 SMTP 서버가 XLOOP 확장을 광고합니다.
XLOOP를 지원하는 SMTP 서버와 통신할 때 MTA의 SMTP 클라이언트는 광고된 문자열을 MTA 값과 비교하고 클라이언트가 실제로 SMTP 서버와 통신 중인 경우 메일을 즉시 바운스합니다.
이 절에서는 기타 키워드에 대해 설명합니다. 이 장은 다음 내용으로 구성되어 있습니다.
키워드: notificationchannel, dispositionchannel
이러한 키워드는 각각 초기에 전달 상태 알림(DSN) 및 MDN(Message Disposition Notification)을 대기열에 포함하기 위한 장소로 프로세스 채널을 대체합니다. 명명된 채널이 없으면 Messaging Server는 다시 프로세스 채널을 사용합니다.
notificationchannel은 초기에 전달 상태 알림(DSN)을 대기열에 포함하기 위한 장소로 프로세스 채널을 대체합니다. 명명된 채널이 없으면 Messaging Server는 다시 프로세스 채널을 사용합니다.
dispositionchannel은 초기에 MDN(Message Disposition Notification)을 대기열에 포함하기 위한 장소로 프로세스 채널을 대체합니다. 명명된 채널이 없으면 Messaging Server는 다시 프로세스 채널을 사용합니다.
Messaging Server는 RFC 2476의 메일 제출 프로토콜을 지원합니다. submit 키워드를 사용하여 채널을 제출 전용 채널로 표시할 수 있습니다. 이 키워드는 SMTP 서버가 메일 제출 전용으로 사용되는 특수 포트에서 실행하는 대부분의 TCP/IP 채널에 유용합니다. RFC 2476은 포트 587을 이러한 메일 제출용으로 사용하도록 구성합니다.
키워드: user
user 키워드는 파이프 채널에서 실행할 아이디를 나타내는 데 사용됩니다.
user에 대한 인수는 일반적으로 소문자로 사용되지만 인수가 따옴표로 묶여 있는 경우 원래의 문자가 그대로 유지됩니다.
키워드: filter, nofilter, channelfilter, nochannelfilter, destinationfilter nodestinationfilter, sourcefilter, nosourcefilter, fileinto, nofileinto)
filter 키워드는 원시 및 ims-ms 채널에서 해당 채널에 대한 사용자 필터 파일의 위치를 지정하는 데 사용됩니다. 이 키워드는 필터 파일 위치를 설명하는 필수 URL 인수를 갖습니다. 기본값은 nofilter이며 해당 채널에 대해 사용자 메일함 필터가 사용되지 않음을 의미합니다.
sourcefilter 및 destinationfilter 키워드는 일반 MTA 채널에서 받는 메일과 보내는 메일 각각에 적용할 채널 수준 필터를 지정하는 데 사용할 수 있습니다. 이러한 키워드는 채널 필터 파일 위치를 설명하는 필수 URL 인수를 갖습니다. 기본값은 nosourcefilter 및 nodestinationfilter이고 어느 채널 방향에 대해서도 채널 메일함 필터를 사용하지 않음을 의미합니다.
이전의 channelfilter 및 nochannelfilter 키워드는 각각 destinationfilter 및 nodestinationfilter의 동의어입니다.
현재 ims-ms 채널과 LMTP 채널에서만 지원되는 fileinto 키워드는 메일함 필터 fileinto 연산자를 적용할 때 주소를 변경하는 방법을 지정합니다. ims-ms 채널에서의 일반적인 사용법은 다음과 같습니다.
fileinto $U+$S@$D
위의 키워드는 폴더 이름을 원본 주소에 하위 주소로 삽입하여 원래의 하위 주소를 대체하도록 지정합니다.
LMTP 채널에서의 일반적인 사용법은 다음과 같습니다.
fileinto @$4O:$U+$S@$D
여기서 $4O는 4와 영문자 O입니다(숫자 0이 아님).
키워드: destinationspamfilterXoptin, sourcespamfilterXoptin
destinationspamfilterXoptin은 이 채널을 대상으로 하는 모든 메일이 필터링 소프트웨어 X를 통해 실행되도록 지정합니다. 필터링 소프트웨어 X는 option.dat의 spamfilterX_library에서 정의합니다. 필터 매개 변수 앞에는 키워드가 오고 사용 가능한 매개 변수는 필터링 프로그램에 따라 다릅니다.
sourcespamfilterXoptin은 이 채널로부터 수신된 모든 메일이 스팸 필터링 소프트웨어 X를 통해 실행하도록 지정합니다. 필터링 소프트웨어 X는 option.dat의 spamfilterX_library에서 정의합니다. 시스템 차원 기본 매개 변수 앞에는 키워드가 오고 사용 가능한 매개 변수는 필터링 프로그램에 따라 다릅니다. switchchannel이 적용되는 경우 이 키워드가 switched-to 채널에 포함됩니다.
이러한 키워드를 사용하는 방법에 대한 자세한 내용은 채널 수준 필터링 지정을 참조하십시오.
aliasdetourhost 는 호스트된 사용자의 mailHost 속성 값에 대한 소스 채널별 대체를 허용합니다. 특히 aliasdetourhost는 일반적으로 로컬(이 시스템에서 호스트되는) 사용자를 대상으로 하는 메일을 라우팅할 때 특정 종류의 처리를 위해 별도의 호스트로 “우회”하는 데 사용됩니다. 메일을 원래 호스트에서 확인(해당 주소가 정당한 로컬 주소인지)하고 처리 호스트로 우회한 다음 확장 및 전달을 위해 원래 호스트로 되돌려 보낼 수 있습니다.
aliasdetourhost는 채널 및 타사 필터링 호스트를 더 적절하게 구성하고 일종의 “중간 필터링”을 사용할 수 있게 합니다. aliasdetourhost 는 일반적으로 대체 변환 채널과 함께 사용됩니다. 대체 변환 채널이 원격 수신자의 라우팅에 영향을 주는 데 사용되는 것과 달리 aliasdetourhost는 로컬(이 시스템에서 호스팅되는) 사용자의 라우팅에 영향을 주는 데 사용됩니다.
aliasdetourhost의 인수는 호스트 또는 도메인 이름이거나 호스트/도메인 지정입니다. 다시 쓰기 규칙을 사용하여 호스트 이름, IP 리터럴 주소 및 채널 태그(암시적으로 호스트 이름으로 간주되는)를 처리할 수 있습니다. 소스 채널에서 이 키워드를 지정하는 경우 태그 정보가 처리된 후 메일 호스트 정보가 확인되기 직전에 LDAP에 저장된 주소의 별칭 확장이 중지됩니다. 이 때 메일이 aliasdetourhost 값으로 보내지고 처리된 주소가 성공적으로 완료되지만 이러한 작업은 주소 검증이 끝나고 별칭 확장이 수행되기 전에 발생합니다.
aliasdetourhost를 사용하여 변환 채널 필터링과 관련된 다양한 문제를 방지하는 예는 다음과 같습니다. 여기서는 시스템이 프런트엔드 MTA 및 백엔드 메시지 저장소를 사용하여 설정되었다고 가정합니다. 사용자의 전달 옵션은 forward 및 mailbox로 설정되어 있습니다. MTA에서는 바이러스 백신/스팸 시스템을 위해 대체 변환 채널을 사용합니다. 이 사용자에게 메일이 도착하면 MTA 별칭이 확장되고 두 명의 수신자(하나는 로컬, 다른 하나는 원격)가 생성됩니다. 원격 수신자의 복사본은 직접 전송됩니다. 반면, 로컬 수신자의 복사본은 변환 채널로 이동하여 스캔된 다음 반환됩니다. 그런 다음 별칭 확장이 다시 적용되어 원격 수신자의 두 번째 복사본이 생성되며 로컬 수신자의 복사본은 정상적으로 전달됩니다. 최종적으로 원격 수신자에 대한 두 개의 복사본과 로컬 수신자에 대한 하나의 복사본이 생성됩니다.
aliasdetourhost를 사용하는 채널에서는 로컬로 호스트된 사용자에 대해 대체 변환 채널을 사용하지 않고(단, 다른 수신자에 대해서는 여전히 대체 변환 채널을 사용할 수 있음) 다음 작업을 수행할 수 있습니다.
메일을 수락합니다.
메일을 외부 스팸/바이러스 필터에 라우팅합니다.
주소 확장 및 전달을 위해 메일을 다시 수락합니다.
예 1:
타사 스캐너가 MTA에서 별개의 호스트에 실행 중이라고 가정합니다. 다음 예는 메일을 수락하기 전에 수신자 주소 검증을 수행하는 기능을 유지하면서도 가짜 복제본을 만들지 않고 사용자 항목을 전달할 수 었게 합니다.
새 tcp_scanner 채널을 만듭니다.
daemon 키워드를 해당 채널에 넣어 필터링 시스템을 가리킵니다. enqueue_removeroute도 이 채널에 추가합니다. tcp_scanner 채널은 imta.cnf에서 다음과 같이 표시됩니다.
tcp_scanner smtp mx single_sys subdirs 20 noreverse maxjobs 7 pool SMTP_POOL daemon my_a-v_filter.siroe.com enqueue_removeroute tcp_scanner-daemon |
스캔할 모든 인바운드 소스 tcp 채널(tcp_local, tcp_submit, tcp_intranet, tcp_auth 등)에서 aliasDetourHost tcp_scanner-daemon을 tcp_local에 추가합니다. 다음은 tcp_local 및 tcp_submit에 대한 예입니다.
! tcp_local tcp_local smtp mx single_sys remotehost inner switchchannel identnonenumeric subdirs 20 maxjobs 7 pool SMTP_POOL maytlsserver maysaslserver saslswitchchannel tcp_auth missingrecipientpolicy 0 aliasdetourhost tcp_scanner-daemon tcp-daemon |
! tcp_submit tcp_submit submit smtp mx single_sys mustsaslserver maytlsserver missingrecipientpolicy 4 aliasdetourhost tcp_scanner-daemon tcp_submit-daemon |
aliasdetourhost(tcp_scanner-daemon)의 인수는 새 채널 tcp_scanner의 공식 호스트 이름입니다.
tcp_scanner 채널을 통해 스캔 시스템에서 메일을 다시 수신하기 위해 다시 쓰기 규 칙을 작성합니다.
[1.2.3.4] $E$R$U[1.2.3.4]@tcp_scanner-daemon
여기서 1.2.3.4는 스캐너 시스템의 IP 주소입니다.
이 다시 쓰기 규칙이 없으면 메일이 다른 tcp* 소스 채널을 통해 들어오며 모든 메일에 aliasdetourhost가 있기 때문에 메일이 다시 스캔됩니다. 루프가 발생합니다.
구성을 다시 컴파일하고 디스패처를 다시 시작합니다.
#imsimta cnbuild #imsimta restart dispatcher |
예 2:
타사 스캐너가 MTA와 동일한 호스트에서 실행 중이지만 다른 포트를 수신한다고 가정 합니다. 메일이 포트 10024에서 수락되며 포트 10025에서 릴레이된다고 가정합니다.
새 tcp_scanner 채널을 만듭니다.
! tcp_scanner tcp_scanner smtp nomx single_sys identnonenumeric subdirs 20 maxjobs 7 pool SCAN_POOL daemon 127.0.0.1 port 10024 enqueue_removeroute tcp_scanner-daemon |
스캔할 모든 인바운드 소스 tcp 채널(tcp_local, tcp_submit, tcp_intranet 등)에서 aliasDetourHost tcp_scanner-daemon을 tcp_local에 추가합니다. 다음은 tcp_local 및 tcp_submit에 대한 예입니다.
! tcp_local tcp_local smtp mx single_sys remotehost inner switchchannel identnonenumeric subdirs 20 maxjobs 7 pool SMTP_POOL maytlsserver maysaslserversaslswitchchannel tcp_auth missingrecipientpolicy 0 aliasdetourhost tcp_scanner-daemon tcp-daemon |
! tcp_submit tcp_submit submit smtp mx single_sys mustsaslserver maytlsserver missingrecipientpolicy 4 aliasdetourhost tcp_scanner-daemon tcp_submit-daemon |
tcp_scanner 채널을 통해 아웃바운드 메일을 다시 라우팅하기 위해 mappings 파일에 추가합니다.
CONVERSIONS in-chan=tcp_scanner;out-chan=*;CONVERT No in-chan=tcp_*;out-chan=tcp_local;CONVERT Yes,Channel=tcp_scanner
SMTP_POOL 아래의 job_controller.cnf에서 동시 스캔 수에 대한 제한을 추가합니다.
스캔 소프트웨어에도 제한이 있어야 하지만 Messaging Server가 메일을 수락하지 않을 경우에 스캐너로 메일을 전송하지 않도록 하기 위해서 이 설정을 동일하게 유지하는 것이 좋습니다.
! [POOL=SCAN_POOL] job_limit=2 ! |
새 서비스를 dispatcher.cnf에 추가하여 특정 포트에서 스캐너로부터 되돌아오는 메일을 수락하고 메일이 다시 스캔되지 않도록 tcp_scan에서 메일을 가져옵니다.
! [SERVICE=SMTP_SCANNING] INTERFACE_ADDRESS=127.0.0.1 PORT=10025 IMAGE=IMTA_BIN:tcp_smtp_server LOGFILE=IMTA_LOG:tcp_smtp_server.log STACKSIZE=2048000 PARAMETER=CHANNEL=tcp_scanner ! |
구성을 다시 컴파일하고 디스패처를 다시 시작합니다.
# imsimta cnbuild # imsimta restart job_controller # imsimta restart dispatcher |
키워드: sourcenosolicit 및 destinationnosolicit
draft-malamud-no-soliciting-07.txt에 설명된 NO-SOLICIT SMTP 확장은 Messaging Server에서 제안된 표준으로 구현되었습니다. 다음 채널 키워드를 사용하여 이 기능을 제어할 수 있습니다.
sourcenosolicit는 이 채널이 전송하는 메일에서 차단될 요청 필드 값의 쉼표로 구분된 목록을 지정합니다. 이 값 목록은 NO-SOLICIT EHLO 응답에 표시됩니다. 글롭 스타일 와일드카드를 이러한 값에서 사용할 수 있지만 와일드카드를 포함하는 값은 EHLO 알림에 표시되지 않습니다.
destinationnosolicit는 이 채널의 대기열에 포함된 메일에서 허용되지 않는 요청 필드 값의 쉼표로 구분된 목록을 지정합니다.
단일 세션에서 허용되는 잘못된 RCPT TO: 주소의 수에 제한을 설정합니다. 지정된 수의 To: 주소가 거부되면 모든 후속 수신자(잘못되었는지 여부에 상관없이)는 4xx 오류와 함께 거부됩니다. ALLOW_REJECTIONS_BEFORE_DEFERRAL SMTP 채널 키워드와 동일한 기능을 채널 단위로 제공합니다.