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

9장 MTA 주소 변환 및 라우팅

Messaging Server 6 2003Q4 이전에 Messaging Server는 LDAP 서버에 저장된 정보로 컴파일된 데이터베이스에서 모든 사용자, 도메인 및 그룹 데이터에 액세스했습니다. LDAP 서버에서 디렉토리 정보가 업데이트되면 데이터베이스 정보는 dirsync라는 프로그램과 동기화되었습니다. Messaging Server MTA는 이제 LDAP 디렉토리에 직접 액세스합니다. 이 장에서는 Direct LDAP 데이터 액세스를 사용한 MTA의 데이터 흐름에 대해 설명합니다. 이 장은 다음 내용으로 구성되어 있습니다.

Direct LDAP 알고리즘 및 구현

다음 절에서는 Direct LDAP 처리에 대해 설명합니다.

도메인의 로컬 여부 확인

user@domain 형식의 주소에서 시작되는 주소 변환 및 라우팅 프로세스는 우선 domain이 로컬인지 여부를 검사합니다.

다시 쓰기 규칙 방법

주어진 문자열을 검사하여 로컬로 처리해야 하는 도메인인지 여부를 확인하는 기능이 MTA 다시 쓰기 규칙 방법에 추가되었습니다. 이 새 기능은 $V 또는 $Z 메타 문자에 의해 활성화됩니다. 이러한 새 메타 문자는 기존 $N, $M, $Q$C 메타 문자와 구문적으로 유사합니다. 즉, 뒤에 패턴 문자열이 옵니다. $N, $M, $Q$C의 경우 소스 또는 대상 채널에 대해 패턴이 일치됩니다. $V$Z의 경우 패턴은 도메인이며 로컬인지 여부를 확인하는 검사가 수행됩니다. $V의 경우 로컬이 아닌 도메인에 대해 규칙이 실패하며 $Z의 경우 로컬 도메인에 대해 규칙이 실패합니다.

이러한 메타 문자의 처리는 다음 절차에 따라 구현됩니다.

  1. Messaging Server는 현재 도메인이 디렉토리의 유효한 도메인 항목과 일치하는지 여부를 확인합니다. 항목이 없으면 단계 3으로 가십시오.

  2. 도메인에 디렉토리의 항목이 있을 때는 LDAP_DOMAIN_ATTR_ROUTING_HOSTS MTA 옵션에서 지정한 속성(기본 mailRoutingHosts)이 해당 도메인 항목에서 검색됩니다. 이 속성이 존재할 경우 이 도메인의 사용자를 처리할 수 있는 호스트 집합이 나열됩니다. 이 목록은 local.hostname configutil 매개 변수에 지정된 호스트 및 local.imta.hostnamealiases configutil 매개 변수에 지정된 호스트 목록과 비교됩니다. 이러한 옵션은 각각 LDAP_LOCAL_HOSTLDAP_HOST_ALIAS_LIST MTA 옵션으로 무시할 수 있습니다. 일치하는 항목이 있거나 도메인에 속성이 존재하지 않을 경우 도메인은 로컬입니다. 일치하는 항목이 없으면 도메인은 로컬이 아닙니다.

    mailRoutingHosts 속성으로 인해 로컬이 아닌 것으로 간주되는 도메인의 처리는 ROUTE_TO_ROUTING_HOST MTA 옵션의 설정에 따라 달라집니다. 이 옵션이 0(기본값)으로 설정된 경우 주소는 단순히 로컬이 아닌 것으로 간주되며 MTA 다시 쓰기 규칙을 사용하여 라우팅을 결정합니다. 이 옵션이 1로 설정된 경우 LDAP_DOMAIN_ATTR_ROUTING_HOSTS MTA 옵션에 나열된 첫 번째 값으로 구성된 소스 경로가 주소의 앞에 놓입니다.

  3. 도메인 항목을 찾을 수 없는 경우 도메인의 왼쪽에서 구성 요소를 제거하고 단계 1로 이동합니다. 구성 요소가 남아 있지 않으면 단계 4를 진행합니다.

    도메인 트리를 거슬러 올라가는 이 방법은 결과적으로 domain.com이 로컬로 인식될 경우 domain.com의 모든 하위 도메인이 로컬로 인식되게 합니다. 이 동작이 바람직하지 않은 상황이 발생할 수 있으므로 동작을 제어하기 위한 MTA 옵션 DOMAIN_UPLEVEL이 제공됩니다. 특히 DOMAIN_UPLEVEL의 비트 0(값 = 1)이 지워진 경우 제거된 도메인 구성 요소로 재시도할 수 없게 됩니다. DOMAIN_UPLEVEL의 기본값은 0입니다.

  4. 이제 부속 도메인 검사를 수행해야 합니다. 부속 도메인에는 도메인 항목이 없고, 오히려 하나 이상의 사용자 항목에 특별한 도메인 속성을 추가함으로써 지정됩니다. 후속 도메인 검사는 DOMAIN_MATCH_URL MTA 옵션에 지정된 LDAP URL을 사용하여 LDAP 검색을 시작하는 방법으로 수행됩니다. 이 옵션의 값은 다음과 같이 설정해야 합니다.

    ldap:///$B?msgVanityDomain?sub?(msgVanityDomain=$D)

    $Blocal.ugldapbasedn configutil 매개 변수의 값을 대체합니다(이는 디렉토리에서 사용자 트리의 기반임). LDAP_USER_ROOT MTA 옵션을 사용하여 특히 MTA에 대해 이 configutil 옵션의 값을 무시할 수 있습니다.

    이 검색의 실제 반환 값은 중요하지 않습니다. 중요한 것은 반환할 값이 존재하는지 여부입니다. 반환 값이 존재할 경우 도메인은 로컬로 간주되며 그렇지 않을 경우 도메인은 로컬이 아닌 것으로 간주됩니다.

도메인 로컬 여부의 도메인 맵 확인

디렉토리에서 유효한 도메인 항목을 찾기 위해 수행되는 단계가 무엇인지 잘 기억하는 것이 좋습니다. 이러한 단계는 스키마 수준별로 다릅니다. Sun LDAP Schema, v.1의 경우 이러한 단계는 다음과 같습니다.

  1. 도메인을 도메인 트리의 기본 DN으로 변환합니다. 이 작업은 도메인을 일련의 dc 구성 요소로 변환한 다음 도메인 루트 접미어를 추가하는 방법으로 수행합니다. 기본 접미어는 service.dcroot configutil 매개 변수에서 얻습니다. 기본 접미어는 o=internet입니다. 따라서 a.b.c.d 형식의 도메인은 일반적으로 dc=a,dc=b,dc=c,dc=d,o=internet으로 변환됩니다. service.dcroot configutil 매개 변수는 LDAP_DOMAIN_ROOT MTA 옵션을 설정하여 무시할 수 있습니다.

  2. 단계 1에서 발견된 기본 DN과 inetDomain 또는 inetDomainAlias 객체 클래스를 가진 항목을 찾습니다. 이 목적에 사용되는 검색 필터는 LDAP_DOMAIN_FILTER_SCHEMA1 MTA 옵션을 설정하여 무시할 수 있습니다. 이 옵션의 기본값은 (|(objectclass=inetDomain)(objectclass=inetdomainalias))입니다.

  3. 아무 것도 발견되지 않을 경우 실패와 함께 종료합니다.

  4. 항목의 객체 클래스를 inetDomain에서 찾은 경우, 해당 도메인 항목에 관련된 inetDomainBaseDn 속성이 있는지 확인하십시오. 이 속성이 있으면 사용자 항목에 대한 후속 검색에 사용되도록 저장한 다음 처리가 종료됩니다. 이 속성이 없으면 해당 항목은 도메인 별칭으로 가정되고 단계 5로 처리가 계속됩니다. inetDomainBaseDN 대신 MTA 옵션 LDAP_DOMAIN_ATTR_BASEDN을 사용할 수 있습니다.

  5. 항목은 도메인 별칭이어야 합니다. aliasedObjectName 속성에서 참조한 새 항목을 찾아 단계 4로 돌아가십시오. aliasedObjectName 속성이 없으면 오류와 함께 처리가 종료됩니다. MTA 옵션 LDAP_DOMAIN_ATTR_ALIAS를 사용하여 aliasedObjectName 속성 사용을 대체할 수 있습니다.

    처리가 단계 4로 돌아가는 일은 한 번 정도만 발생할 수 있다는 점을 주의하십시오. 도메인 별칭에서 도메인 별칭을 가리키는 일은 허용되지 않습니다.

Sun LDAP Schema 2에서는 수행되는 작업이 훨씬 더 간단합니다. 디렉토리에서 도메인이 sunPreferredDomain 또는 associatedDomain 속성 값으로 표시되는 sunManagedOrganization 객체 클래스가 있는 항목을 검색합니다. 필요한 경우 sunPreferredDomainassociatedDomain 속성의 사용을 각각 MTA 옵션 LDAP_ATTR_DOMAIN1_SCHEMA2LDAP_ATTR_DOMAIN2_SCHEMA2를 사용하여 무시할 수 있습니다. 검색은 service.dcroot configutil 매개 변수로 지정된 루트 하에서 수행됩니다. service.dcroot configutil 매개 변수는 LDAP_DOMAIN_ROOT MTA 옵션을 설정하여 무시할 수 있습니다. 아울러 스키마 2의 도메인 항목은 inetDomainBaseDn 속성을 가지지 않아도 됩니다. 해당 속성을 가지지 않은 경우 사용자 트리의 기본이 도메인 항목 자체인 것으로 간주됩니다.

도메인 로컬 여부 정보의 캐싱

도메인 다시 쓰기 작업이 수행되는 빈도와 디렉토리 쿼리(특히 부속 도메인 검사)의 비용으로 인해 도메인에 대한 부정적 및 긍정적 표시를 모두 캐시해야 합니다. 이 작업은 동적으로 확장되는 메모리 내장의 개방형 체인 해시 테이블을 통해 구현됩니다. 캐시의 최대 크기는 DOMAIN_MATCH_CACHE_SIZE MTA 옵션(기본값 100000)으로 설정하며 캐시의 항목에 대한 시간 초과는 DOMAIN_MATCH_CACHE_TIMEOUT MTA 옵션(기본값 600초)으로 설정합니다.

오류 처리

이 프로세스 도중에 발생하는 임시 서버 오류를 신중하게 처리해야 하는데 이는 이 오류가 발생할 경우 주어진 도메인이 로컬인지 여부를 알 수 없기 때문입니다. 기본적으로 이러한 경우에는 두 가지 결과가 가능합니다.

  1. 주소를 나중에 다시 시도하라는 임시(4xx) 오류를 클라이언트에게 반환합니다.

  2. 주소를 수락하지만 재처리 채널에서 주소를 대기시켜 나중에 로컬로 다시 시도할 수 있게 합니다.

이러한 두 옵션이 모든 경우에 적합한 것은 아닙니다. 예를 들어, 결과 1은 원격 SMTP 중계와 통신할 때 적합합니다. 그러나 결과 2는 로컬 사용자로부터의 SMTP 제출을 처리할 때 적합합니다.

동일한 패턴을 가진 여러 규칙을 사용하여 일시적인 오류를 처리하는 것이 이론적으로 가능하지만 이러한 쿼리를 반복할 경우 발생하는 오버헤드는 캐시로도 처리할 수 없는 큰 부담이 됩니다. 이러한 이유로 도메인 다시 쓰기의 다음 규칙까지의 성공/실패 일치 모델은 적합하지 않습니다. 대신 MTA 옵션 DOMAIN_FAILURE에 지정된 특수한 템플리트가 도메인 조회 실패의 경우에 사용됩니다. $V 작업이 실패하면 이 템플리트는 처리 중인 현재 다시 쓰기 규칙 템플리트의 나머지 부분을 대체합니다.

도메인 검사 다시 쓰기 규칙을 위한 패턴

다른 다시 쓰기 규칙이 수행되기 전에 이 도메인 검사를 수행해야 합니다. 이 순서는 규칙의 왼쪽에서 특수한 $*를 사용하여 지정합니다. $* 패턴은 다른 모든 규칙에 앞서 검사됩니다.

모든 방법 사용

지금까지 설명된 모든 방법을 고려할 때 imta.cnf에서 필요한 새 다시 쓰기 규칙은 다음과 같습니다.

$*     $E$F$U%$H$V$H@localhost

또한 option.dat 파일에서 DOMAIN_FAILURE MTA 옵션 값은 다음과 같아야 합니다.

reprocess-daemon$Mtcp_local$1M$1~-error$4000000?Temporary lookup failure

이 다시 쓰기 규칙에서 localhost는 로컬 채널과 연관된 호스트 이름입니다. 여기에 표시된 DOMAIN_FAILURE 옵션 값이 기본값이므로 정상적인 환경에서 option.dat에 표시될 필요가 없습니다.

여기에서 순서는 특히 까다롭습니다. MTA는 주소가 재작성되었지만 경로가 아직 추가되기 전에 $V를 검사합니다. 따라서 일시적인 조회 실패가 발생할 경우에 MTA에서 경로를 변경할 수 있습니다. 보류 중인 채널 일치 검사는 삽입 지점이 변경될 때마다 적용되므로 $H초 후에 @이 검사를 호출합니다. 이 검사에 성공할 경우 템플리트의 나머지 부분이 적용되며 다시 쓰기 처리가 완료됩니다. 검사에 실패할 경우 다시 쓰기는 실패하며 적용 가능한 다음 다시 쓰기 규칙을 사용하여 다시 쓰기가 계속됩니다. 일시적인 오류로 인해 검사를 수행할 수 없는 경우 DOMAIN_FAILURE MTA 옵션에 지정된 값에서 템플리트 처리가 계속됩니다. 이 템플리트 값은 우선 라우팅 호스트를 reprocess-daemon으로 설정합니다. 그런 다음 템플리트는 MTA가 동일한 종류 또는 tcp_local의 재처리 채널을 처리하고 있는지 여부를 확인합니다. MTA가 이러한 채널을 처리하는 중이면 규칙이 계속 진행되어 라우팅 호스트를 잘못된 것으로 만들고 일시적인 오류를 결과로 지정합니다. MTA가 이러한 채널을 처리하는 중이 아니면 규칙이 잘리고 성공적으로 종료하므로 재처리 채널에 주소가 다시 쓰여집니다.

로컬 주소의 별칭 확장

주소가 로컬 채널과 연관된 것으로 확인되고 나면 해당 주소에 자동으로 별칭 확장이 적용됩니다. 별칭 확장 프로세스는 다음을 비롯하여 여러 정보 소스를 검사합니다.

  1. 별칭 파일(컴파일된 구성의 일부)

  2. 별칭 데이터베이스

  3. 별칭 URL

검사되는 정확한 별칭 소스와 별칭 소스가 검사되는 순서는 option.dat 파일의 ALIAS_MAGIC MTA 옵션 설정에 따라 달라집니다. Direct LDAP의 경우 이 옵션을 8764로 설정합니다. 이것은 ALIAS_URL0 MTA 옵션에 지정된 URL이 우선적으로 검사되고 ALIAS_URL1 MTA 옵션에 지정된 URL이 검사된 다음 ALIAS_URL2 MTA 옵션에 지정된 URL이 검사되고 마지막으로 별칭 파일이 검사된다는 것을 의미합니다. 이 설정이 활성화되면 별칭 데이터베이스는 검사되지 않습니다.

LDAP URL을 사용한 별칭 검사

LDAP에서 별칭을 검사하는 것은 두 개의 특수한 LDAP URL을 별칭 URL로 지정하여 구현합니다. 첫 번째 URL은 일반 사용자와 그룹을 처리하며 부속 도메인은 후속 별칭 URL에 의해 처리됩니다. 첫 번째 URL은 다음과 같이 ALIAS_URL0으로 지정됩니다.

ALIAS_URL0=ldap:///$V?*?sub?$R

$V 메타 문자

메타 문자 확장은 URL 조회 전에 발생합니다. ALIAS_URL0 값에 사용되는 두 개의 메타 문자는 $V$R입니다.

$V 메타 문자는 주소의 도메인 부분을 기본 DN으로 변환합니다. 이것은 앞의, 다시 쓰기 규칙 방법 절에서 설명한 $V 다시 쓰기 규칙 메타 문자에 의해 수행되는 초기 단계와 비슷합니다. $V 처리는 다음 단계로 구성됩니다.

  1. 현재 도메인의 사용자 항목에 대한 기본 DN을 가져옵니다.

  2. 현재 도메인과 연결된 정규 도메인을 가져옵니다. Sun LDAP Schema 1에서 정규 도메인 이름은 도메인 항목의 inetCanonicalDomainName 속성에 의해 제공됩니다(이 속성이 존재할 경우). 이 속성이 없을 경우 정규 이름은 실제 도메인 항목의 DN에서 명시적인 방식으로 생성되는 이름입니다. 현재 도메인이 별칭일 경우 이것은 현재 도메인과 다릅니다. 정규 이름을 저장하는 데 사용되는 이름 속성은 option.dat 파일의 LDAP_DOMAIN_ATTR_CANONICAL MTA 옵션으로 무시할 수 있습니다.

    Sun LDAP Schema 2에서 정규 이름은 단순히 SunPreferredDomain 속성 값입니다.

  3. 기본 DN이 존재할 경우 이를 $V 대신에 URL로 대체합니다.

  4. 이제 이 항목에 대한 적용 가능한 모든 호스트된 도메인이 확인됩니다. 이 작업은 정규 도메인(DOMAIN_UPLEVEL의 비트 2(값 = 4)가 지워진 경우) 또는 현재 도메인(DOMAIN_UPLEVEL의 비트 2(값 = 4)가 설정된 경우)과 service.defaultdomain configutil 매개 변수를 비교하는 방법으로 수행됩니다. 서로 일치하지 않을 경우 해당 항목은 호스트된 도메인의 구성원입니다. service.defaultdomain configutil 매개 변수는 option.dat 파일에서 LDAP_DEFAULT_DOMAIN MTA 옵션을 설정하여 무시할 수 있습니다.

  5. 기본 DN 확인이 실패할 경우 도메인의 왼쪽에서 구성 요소를 제거하고 단계 1로 이동합니다. 구성 요소가 남아 있지 않을 경우 대체는 실패합니다.

$V는 또한 선택 사항인 숫자 인수를 허용합니다. 1로 설정된 경우(예: $1V) 도메인 트리의 도메인 확인 실패가 무시되고 local.ugldapbasedn configutil 옵션에서 지정한 사용자 트리의 기반이 반환됩니다.

도메인의 기본 DN을 검색하려는 시도가 성공할 경우 MTA는 또한 나중에 필요한 여러 유용한 도메인 속성을 검색합니다. 검색된 속성의 이름은 option.dat 파일의 다음 MTA 옵션에 의해 설정됩니다.

URL에서 매핑 호출

간혹 도메인에서 기본 DN으로의 매핑이 다른 방식으로 수행되기도 합니다. 이러한 설정을 수용하기 위해 URL 확인 프로세스는 MAT 매핑을 호출하는 기능을 가집니다. 이 작업은 다음과 같은 일반적인 형식의 메타 문자 시퀀스를 통해 수행됩니다.

$|/mapping-name/ mapping-argument|

큰따옴표(“)는 콜아웃을 시작 및 종료합니다. $의 바로 뒤에 오는 문자는 매핑 이름과 인수의 구분자이며 이 문자는 매핑 이름이나 인수에 사용되는 예상된 문자 값과 충돌하지 않도록 선택해야 합니다.

$R 메타 문자

$R 메타 문자는 URL을 위한 적절한 필터를 제공합니다. 이 메타 문자의 목적은 특정 사용자나 그룹에 대한 전자 메일 주소를 포함할 수 있는 모든 속성을 검색하는 필터를 생성하는 것입니다. 검색할 속성 목록은 configutil 매개 변수 local.imta.mailaliases에서 제공됩니다. 이 매개 변수를 설정하지 않을 경우 local.imta.schematag configutil 매개 변수가 검사되며 다음과 같이 이 매개 변수의 값에 따라 적절한 기본 속성 집합이 선택됩니다.

sims401 mail, rfc822mailalias

nms41 mail,mailAlternateAddress

ims50 mail,mailAlternateAddress,mailEquivalentAddress

local.imta.schematag의 값은 쉼표로 구분된 목록이 될 수 있습니다. 둘 이상의 스키마가 지원될 경우 중복 항목이 제거된 결합된 속성 목록이 사용됩니다. LDAP_SCHEMATAG MTA 옵션을 사용하여 특히 MTA에 대한 local.imta.schematag의 설정을 무시할 수 있습니다.

또한 이 필터는 원래 제공되었던 주소뿐만 아니라 로컬 부분이 동일하지만 실제로 도메인 트리에서 발견된 도메인( $V 메타 문자 절의 단계 2에서 저장)을 가진 주소를 검색합니다. 도메인 트리 조회의 반복 특성은 두 개의 주소가 다를 수 있다는 것을 의미합니다. 이 추가 검사는 option.dat 파일에서 DOMAIN_UPLEVEL MTA 옵션의 비트 1(값 = 2)을 통해 제어합니다. 이 비트를 설정하면 추가 주소 검사가 활성화됩니다. DOMAIN_UPLEVEL의 기본값은 0입니다.

예를 들어, 도메인 siroe.com이 도메인 트리에 있다고 가정해 봅니다. Sun LDAP Schema, v.1을 사용 중이라고 가정하면 주소 조회는 다음과 같습니다.

u@host1.siroe.com

$R 및 ims50 schematag의 확장 결과로 얻어지는 필터는 다음과 같습니다.

(|(mail=u@siroe.com)
    (mail=u@host1.siroe.com)
    (mailAlternateAddress=u@siroe.com)
    (mailAlternateAddress=u@host1.siroe.com) 
    (mailEquivalentAddress=u@siroe.com)
    (mailEquivalentAddress=u@host1.siroe.com))

반면, DOMAIN_UPLEVEL이 3이 아니라 1로 설정된 경우 필터는 다음과 같을 것입니다.

(|(mail=u@host1.siroe.com)
       (mailAlternateAddress=u@host1.siroe.com)
       (mailEquivalentAddress=u@host1.siroe.com))

가져올 속성 결정

반환할 속성 목록에 대해 URL에서 *가 지정된 경우 이 별표는 MTA가 사용할 수 있는 속성 목록으로 대체됩니다. 이 목록은 MTA가 사용하는 옵션을 지정하는 다양한 MTA 옵션 설정으로부터 동적으로 만들어집니다.

LDAP 오류 처리

이 시점에서 결과 URL은 LDAP 검색을 수행하는 데 사용됩니다. 일정한 LDAP 오류가 발생한 경우 일시적인 오류 표시(SMTP의 4xx 오류)와 함께 처리가 종료됩니다. LDAP 작업이 성공적이지만 결과를 생성하지 못한 경우 LDAP_DOMAIN_ATTR_CATCHALL_ADDRESS MTA 옵션에서 검색된 도메인에 대한 catchall 주소 속성이 검사됩니다. 이 속성이 설정된 경우 해당 값이 현재 주소를 대체합니다.

catchall 주소 속성이 설정되지 않은 경우 LDAP_DOMAIN_ATTR_SMARTHOST MTA 옵션에서 검색된 도메인에 대한 smarthost 속성이 검사됩니다. 이 속성이 설정된 경우 다음 형식의 주소가 작성되고

@smarthost: user@domain

이 결과와 함께 별칭 처리가 성공적으로 종료합니다. 또한 LDAP_DOMAIN_ATTR_CONVERSION_TAG MTA 옵션에서 얻은 도메인에 대한 변환 태그(있을 경우)가 주소에 추가되어 smarthost로 전달하기 전에 변환이 수행될 수 있게 합니다. 도메인에 대해 catchall 주소나 smarthost가 존재하지 않을 경우 이 별칭 URL의 처리가 실패로 종료합니다.

LDAP 결과에 대한 유효성 검사

LDAP 검색이 결과를 반환한 후에 항목이 하나만 존재하는지 확인하기 위해 결과가 검사됩니다. 둘 이상의 항목이 존재할 경우 사용자 또는 그룹에 대한 올바른 객체 클래스, 삭제되지 않은 상태 및 UID(사용자인 경우)를 가지는지 확인하기 위해 각 항목이 검사됩니다. 이 검사를 통과하지 않은 항목은 무시됩니다. 이 검사에 의해 여러 항목이 하나로 줄어들 경우 처리가 계속 진행됩니다. 그렇지 않을 경우에는 중복 또는 모호한 디렉토리 오류가 반환됩니다.

부속 도메인 지원

ALIAS_URL0 검사는 기본 사용자나 호스트된 도메인의 사용자에 대해 수행됩니다. 이 검사가 실패할 경우 또한 부속 도메인 검사가 수행됩니다. 부속 도메인 검사에는 다음 별칭 URL이 사용됩니다.

ALIAS_URL1=ldap:///$B?*?sub?(&(msgVanityDomain=$D)$R)

Catchall 주소 지원

마지막으로 @host 형식의 catchall 주소에 대한 검사가 mailAlternateAddress 속성에서 수행되어야 합니다. 이 와일드카드 지정 형식은 호스트된 도메인과 부속 도메인 모두에서 허용되므로 이에 대한 적절한 별칭 URL은 다음과 같습니다.

ALIAS_URL2=ldap:///$1V?*?sub?(mailAlternateAddress=@$D)


주 –

+* 하위 주소 대체 기법은 항상 Direct LDAP 모드에서 catch-all 주소를 사용하지만 문자열 대체는 전체 로컬 부분이 아닌 하위 주소에서만 이루어집니다. 이것은 이러한 구성을 사용할 때 원래 주소의 전체 로컬 부분이 catch-all 주소에 하위 주소로 연결되도록 변경되었습니다.

예를 들어, 주소 형식이 foo+bar@domain.com인 경우 domain.com 도메인에 로컬 사용자 foo가 없고 domain.com의 catch-all 주소가 bletch+*@example.com이면 결과 주소는 bletch+foo+bar@example.com이 됩니다. 이전에는 bletch+bar@example.com이 사용되었습니다.


LDAP 결과 처리

LDAP 별칭 결과 처리는 순서가 정해진 여러 단계를 통해 수행됩니다. 이러한 단계는 다음 절에서 설명됩니다.

객체 클래스 검사

별칭 검색에 성공할 경우 사용자나 그룹에 대한 적절한 객체 클래스 집합이 포함되었는지 확인하기 위해 항목의 객체 클래스가 검사됩니다. 사용자 및 그룹에 대한 필수 객체 클래스의 가능한 집합은 일반적으로 활성화된 schemata에 따라 달라지며 이것은 local.imta.schematag 설정에 의해 결정됩니다.

표 9–1은 다양한 schematag 값의 결과인 사용자 및 그룹 객체 클래스를 보여 줍니다.

표 9–1 다양한 schematag 값의 결과인 객체 클래스

schematag

사용자 객체 클래스 

그룹 객체 클래스 

sims40

inetMailRouting+inetmailuser

inetMailRouting+inetmailgroup

nms41

mailRecipient + nsMessagingServerUser

mailGroup

ims50

inetLocalMailRecipient+inetmailuser

inetLocalMailRecipient + inetmailgroup

이 표의 정보는 스키마 태그 처리의 나머지 부분과 마찬가지로 하드 코딩됩니다. 그러나 option.dat 파일에는 또한 사용자와 그룹에 대해 각각 다른 객체 클래스 집합을 지정하도록 설정할 수 있는 두 개의 MTA 옵션인 LDAP_USER_OBJECT_CLASSESLDAP_GROUP_OBJECT_CLASSES가 존재합니다.

예를 들어, ims50,nms41의 스키마 태그 설정은 다음 옵션 설정과 동등합니다.

LDAP_USER_OBJECT_CLASSES=inetLocalMailRecipient+inetmailuser, mailRecipient+nsMessagingServerUser

LDAP_GROUP_OBJECT_CLASSES=inetLocalMailRecipient+inetmailgroup, mailGroup

사용자나 그룹에 적합한 올바른 객체 클래스 집합이 없을 경우 LDAP 결과는 간단하게 무시됩니다. 또한 MTA는 사용자나 그룹을 처리하고 있는지 확인하여 이 정보를 저장합니다. 저장된 이 정보는 나중에 반복적으로 사용됩니다.

여기에 설명된 객체 클래스 설정이 또한 실제 LDAP 검색 필터를 생성하는 데 사용되며 이 필터는 사용자나 그룹에 대한 올바른 객체 클래스를 항목이 갖고 있는지 확인하는 데 사용될 수 있다는 것에 주의합니다. 이 필터는 $K 메타 문자를 통해 액세스할 수 있습니다. 또한 이 필터는 채널 프로그램에서 사용할 수 있도록 MTA의 구성에 내부적으로 저장되며 imsimta cnbuild -option 명령이 사용되면 MTA 옵션 파일 option.datLDAP_UG_FILTER 옵션으로 기록됩니다. 이 옵션은 단지 이 파일에 기록만 되며 MTA는 옵션 파일에서 절대로 이 옵션을 읽지 않습니다.

항목 상태 검사

다음은 항목의 상태가 검사됩니다. 두 가지 상태 속성이 존재하는데 하나는 항목에 대한 일반 속성이며 다른 하나는 메일 서비스에 대한 특수한 속성입니다.

표 9–2는 유효한 schemata에 따라 검사되는 schematag 항목의 일반 및 메일별 사용자 또는 그룹 속성을 보여 줍니다.

표 9–2 검사할 속성

schematag

유형 

일반적인 문제 

메일 

sims40 

사용자 

inetsubscriberstatus

mailuserstatus

sims40 

그룹 

없음 

inetmailgroupstatus

nms41 

사용자 

없음 

mailuserstatus

nms41 

그룹 

없음 

없음 

Messaging Server 5.0 

사용자 

inetuserstatus

mailuserstatus

Messaging Server 5.0 

그룹 

없음 

inetmailgroupstatus

필요한 경우 option.dat 파일의 LDAP_USER_STATUSLDAP_GROUP_STATUS MTA 옵션을 각각 사용하여 사용자와 그룹에 대한 대체 일반 상태 속성을 선택할 수 있습니다. 메일별 사용자 및 그룹 상태 속성은 LDAP_USER_MAIL_STATUSLDAP_GROUP_MAIL_STATUS MTA 옵션으로 제어합니다.

이와 관련된 또 다른 요소는 도메인 자체에 대한 상태(LDAP_DOMAIN_ATTR_STATUSLDAP_DOMAIN_ATTR_MAIL_STATUS)입니다. 모두 합쳐서 네 개의 상태 속성이 존재하며 이러한 상태 속성은 다음 순서로 고려되어 결합됩니다.

  1. 도메인 상태

  2. 도메인 메일 상태

  3. 사용자 또는 그룹 상태

  4. 메일 사용자 또는 그룹 상태

“active” 이외의 상태를 지정하는 첫 번째 속성은 다른 모든 것보다 우선합니다. 가능한 기타 상태 값은 “inactive”, “deleted”, “removed”, “disabled”, “hold” 및 “overquota”입니다. “Hold”, “disabled” 및 “removed” 상태는 메일 도메인이나 메일 사용자, 메일 그룹에만 지정될 수 있습니다. “Overquota” 상태는 메일 도메인 또는 메일 사용자 상태로만 지정할 수 있습니다.

특정 상태 속성이 존재하지 않을 경우 모든 상태는 기본적으로 “active”입니다. 알 수 없는 상태 값은 “inactive”로 해석됩니다.

네 가지 상태가 결합되면 사용자나 그룹은 “inactive”, “deleted”, “removed”, “disabled”, “hold” 및 “overquota”라는 상태가 될 수 있습니다. active 상태는 별칭 처리가 계속되도록 합니다. inactive 또는 overquota 상태의 경우 4xx(임시) 오류와 함께 주소가 즉시 거부됩니다. deleted, removed 및 disabled 상태의 경우 5xx(영구) 오류와 함께 주소가 즉시 거부됩니다. hold 상태는 상태 처리와 관련해서는 active로 처리되지만 나중에 전달 옵션이 고려될 때 단일 “hold” 항목을 포함하는 옵션 목록이 존재하는 모든 옵션보다 우선하도록 내부 플래그가 설정됩니다.

UID 검사

다음 단계는 항목의 UID를 고려하는 것입니다. 다양한 목적에 사용되는 UID는 모든 사용자 항목의 일부여야 하며 그룹 항목에 포함될 수 있습니다. UID가 없는 사용자 항목은 무시되며 이 별칭 URL의 처리가 실패로 종료합니다. 호스트된 도메인의 항목에 대한 UID는 실제 UID, 구분자 문자 및 도메인으로 구성될 수 있습니다. MTA는 실제 UID만을 원하기 때문에 나머지 항목은 제거되며 이 제거 작업에는 option.dat 파일의 LDAP_DOMAIN_ATTR_UID_SEPARATOR MTA 옵션에서 얻은 도메인 구분자 문자가 사용됩니다.

uid가 아닌 속성이 UID를 저장하는 데 사용된 드문 경우에는 LDAP_UID MTA 옵션을 사용하여 다른 속성을 사용하도록 강제할 수 있습니다.

메일 캡처

다음은 하나 이상의 메일 캡처 주소를 지정하는 데 사용되는 LDAP 속성이 검사됩니다. 이 목적에 사용되는 속성은 LDAP_CAPTURE MTA 옵션을 사용하여 지정해야 합니다. 기본값은 없습니다. 이 속성 값은 주소로 간주되며 특수한 “캡처” 알림이 생성되어 현재 메일을 첨부 파일로 포함하는 이러한 주소로 보내집니다. 또한 캡처 주소는 이후에 주소가 봉투의 From: 주소로 표시되는 경우에 주소 역방향 캐시를 시드하는 데 지시합니다.

역방향 캐시 시드

다음은 사용자 항목에 추가된 주 주소와 모든 별칭이 고려됩니다. 이 정보는 주소 역방향 캐시를 시드하는 데 사용되며 현재의 주소 변환 프로세스에서 특정한 역할을 수행하지는 않습니다. 우선 주 주소, 개인 이름, 수신자 제한, 수신자 경계 및 소스 블록 제한 속성이 고려됩니다. 주 주소는 일반적으로 “mail” 속성에 저장되지만 LDAP_PRIMARY_ADDRESS MTA 옵션을 적절하게 설정하여 다른 속성을 지정할 수 있습니다. (물론, 주 주소는 그 자체에 대해 반전됩니다.)다른 모든 속성의 경우에는 기본 속성이 존재하지 않습니다. 이러한 속성을 사용하려면 LDAP_PERSONAL_NAME( 휴가 자동 회신 속성 참조), LDAP_RECIPIENTLIMIT, LDAP_RECIPIENTCUTOFF( 메일 수신자 제한 참조) 및 LDAP_SOURCEBLOCKLIMIT( 절대 메일 크기 제한 지정 참조) MTA 옵션으로 해당 속성을 지정해야 합니다. 또한 해당하는 도메인 수준 수신자 제한, 수신자 경계 및 소스 블록 제한 속성도 이 시점에서 고려됩니다. 사용자 수준 설정은 모든 도메인 수준 설정보다 우선합니다.

다음은 모든 보조 주소가 고려되고 각 보조 주소에 대한 캐시 항목이 작성됩니다. 보조 주소에는 역방향으로 진행되는 주소와 그렇지 않은 주소의 두 종류가 있습니다. 메일 캡처 요청을 모든 경우에 검사해야 하기 때문에 주소 역방향 캐시를 적절하게 시드하려면 두 종류를 모두 고려해야 합니다.

역방향이 적용되는 보조 주소는 일반적으로 mailAlternateAddress 속성에 저장되며 LDAP_ALIAS_ADDRESSES MTA 옵션을 설정하여 다른 옵션을 지정할 수 있습니다. 역방향이 적용되지 않는 보조 주소는 일반적으로 mailEquivalentAddress 속성에 저장되며 LDAP_EQUIVALENCE_ADDRESSES MTA 옵션으로 다른 속성을 지정할 수 있습니다.

메일 호스트 및 라우팅 주소

이제 mailhostmailRoutingAddress 속성을 고려할 차례입니다. 고려되는 실제 속성은 각각 LDAP_MAILHOSTLDAP_ROUTING_ADDRESS MTA 옵션을 사용하여 무시할 수 있습니다. 이러한 속성은 서로 합쳐져서 주소를 지금 실행해야 하는지 아니면 다른 시스템으로 전달해야 하는지 여부를 결정합니다.

첫 번째 단계는 이 항목에 대해 mailhost가 의미가 있는지 여부를 확인하는 것입니다. 항목이 mailhost 특정 항목인지 여부를 확인하기 위해 해당 항목에 대해 활성화된 전달 옵션의 예비 검사가 수행됩니다. mailhost 특정 항목이 아닐 경우 mailhost 검사가 생략됩니다. 이 검사가 수행되는 방법을 이해하려면 전달 옵션 처리에 설명된 내용을 특히 # 플래그를 중심으로 참조하십시오.

사용자 항목의 경우 mailhost 속성은 로컬 시스템을 식별할 경우에만 실행됩니다. mailhost 속성은 local.hostname configutil 매개 변수의 값과 local.imta.hostnamealiases configutil 매개 변수에 지정된 값 목록에 대해 비교됩니다. 일치하는 항목이 있을 경우 mailhost 속성은 로컬 호스트를 식별하는 것으로 간주됩니다.

일치에 성공할 경우 별칭이 로컬로 실행될 수 있으며 별칭 처리가 계속된다는 것을 의미합니다. 일치에 실패할 경우에는 mailhost로 전달해야만 메일이 작동한다는 것을 의미합니다. 다음 형식의 새 주소가 생성되며

@mailhost:user @domain

별칭 확장 작업의 결과가 됩니다.

누락된 mailhost 속성의 처리는 항목이 사용자인지 아니면 그룹인지 여부에 따라 달라집니다. 사용자인 경우 mailhost가 필수적이므로 mailhost 속성이 존재하지 않을 경우 다음 형식의 새 주소가

@smarthost: user@domain

LDAP_DOMAIN_ATTR_SMARTHOST MTA 옵션에 지정된 도메인에 대한 스마트 호스트를 사용하여 생성됩니다. 도메인에 대한 스마트 호스트가 존재하지 않을 경우 오류가 보고됩니다.

반면, 그룹의 경우에는 mailhost가 필요하지 않으므로 누락된 mailhost는 그룹을 어디에서나 확장할 수 있다는 것을 의미하는 것으로 해석됩니다. 따라서 별칭 처리가 계속 진행됩니다.

mailRoutingAddress 속성은 유용한 최종 기능 하나를 추가합니다. 이 속성이 존재할 경우 별칭 처리는 결과적으로 mailRoutingAddress와 함께 종료합니다. 그러나 mailhost가 존재할 경우 해당 mailhost는 mailRoutingAddress에 소스 경로로 추가됩니다.

기타 속성 지원

다음은 mailMsgMaxBlocks 속성이 고려됩니다. 우선 이 속성은 LDAP_DOMAIN_ATTR_BLOCKLIMIT MTA 옵션에서 반환된 도메인 블록 제한에 따라 최소화됩니다. 현재 메일의 크기가 이 제한을 초과하는 것으로 확인될 경우 별칭 처리는 크기 초과 오류와 함께 종료합니다. 크기가 알려지지 않거나 제한을 초과하지 않을 경우에는 제한이 저장되며 나중에 메일 자체가 검사될 때 해당 제한이 다시 검사됩니다. mailMsgMaxBlocks 사용은 LDAP_BLOCKLIMIT MTA 옵션을 사용하여 무시할 수 있습니다.

다음은 여러 속성이 평가 및 저장됩니다. 결국 이러한 속성은 ims_master 채널 프로그램에 사용되도록 대기열 파일 항목에 기록되며 이 채널 프로그램은 이러한 속성을 사용하여 저장소의 사용자 정보 캐시를 업데이트합니다. 개별 사용자에 대한 속성이 발견되지 않을 경우 도메인 수준 속성을 사용하여 기본값을 설정할 수 있습니다.

LDAP 항목이 사용자가 아니라 그룹에 대한 것이거나 LDAP 항목을 LDAP 디렉토리가 아니라 별칭 캐시에서 가져온 경우 이 단계를 건너뛰게 됩니다. 후자의 조건에 담겨 있는 논리는 이 정보를 자주 업데이트하는 것이 불필요하며 별칭 캐시를 사용하면 업데이트를 수행해야 할 경우에 대한 적절한 기준이 제공된다는 점입니다. 검색된 속성의 이름은 다양한 MTA 옵션에 의해 설정됩니다.

표 9–3은 검색된 디스크 할당량 및 메일 할당량 속성을 설정하는 MTA 옵션을 보여 줍니다.

표 9–3 검색된 디스크 할당량 및 메일 할당량 속성을 설정하는 MTA 옵션

MTA 옵션 

속성 

LDAP_DISK_QUOTA

mailQuota

LDAP_MESSAGE_QUOTA

mailMsgQuota

다음은 나중에 메타 문자 대체와 함께 사용할 수 있도록 여러 속성이 저장됩니다.

표 9–4는 MTA 옵션, 기본 속성 및 메타 문자를 보여 줍니다.

표 9–4 MTA 옵션, 기본 속성 및 메타 문자

MTA 옵션 

기본 속성 

메타 문자 

LDAP_PROGRAM_INFO

mailProgramDeliveryInfo

$P

LDAP_DELIVERY_FILE

mailDeliveryFileURL

$F

LDAP_SPARE_1

기본값 없음 

$1E $1G $E

LDAP_SPARE_2

기본값 없음 

$2E $2G $G

LDAP_SPARE_3

기본값 없음 

$3E $3G

LDAP_SPARE_4

기본값 없음 

$4E $4G

LDAP_SPARE_5

기본값 없음 

$5E $5G

추가 속성을 위한 예비 슬롯이 포함되는데 이러한 슬롯을 사용하여 사용자 정의된 주소 확장 기능을 작성할 수 있습니다.

다음은 mailconversiontag 속성과 연관된 모든 값이 현재의 변환 태그 집합에 추가됩니다. 이 속성의 이름은 LDAP_CONVERSION_TAG MTA 옵션을 사용하여 변경할 수 있습니다. 또한 도메인의 mailDomainConversionTag 속성과 연관된 모든 값도 추가됩니다.

전달 옵션 처리

다음은 mailDeliveryOption 속성이 검사됩니다. 이 속성의 이름은 LDAP_DELIVERY_OPTION MTA 옵션을 사용하여 변경할 수 있습니다. 이 속성은 여러 값을 가지며 별칭 변환 프로세스에 의해 생성되는 주소가 이 속성 값에 의해 결정됩니다. 또한 사용자와 그룹에 대해 허용되는 값이 다릅니다. 일반적으로 허용되는 값은 program, forwardhold입니다. 사용자 전용 값은 mailbox, native , unixautoreply이며 그룹 전용 값은 members, members_offline file입니다.

mailDeliveryOption 속성이 적절한 주소로 변환되는 작업은 DELIVERY_OPTIONS MTA 옵션에 의해 제어됩니다. 이 옵션은 허용되는 각 mailDeliveryOption 값이 생성하는 주소뿐만 아니라 허용되는 mailDeliveryOption 값과 각 값이 사용자, 그룹 또는 둘 다에 적용될 수 있는지 여부를 지정합니다.

이 옵션 값은 deliveryoption=template 쌍의 쉼표로 구분된 목록으로 구성되며 각 쌍은 하나 이상의 선택적 단일 문자 접두어를 가집니다.

DELIVERY_OPTIONS 옵션의 기본값은 다음과 같습니다.

DELIVERY_OPTIONS=*mailbox=$M%$\\$2I$_+$2S@ims-ms-daemon, \
     &members=*,                                           \
     *native=$M@native-daemon,                             \
     /hold=@hold-daemon:$A,                                \
     *unix=$M@native-daemon,                               \
     &file=+$F@native-daemon,                              \
     &@members_offline=*,                                  \
     program=$M%$P@pipe-daemon,                            \
     #forward=**,                                          \
     *^!autoreply=$M+$D@bitbucket

각 전달 옵션은 가능한 mailDeliveryOption 속성 값에 해당하며 해당 템플리트는 URL 처리에 사용되는 것과 동일한 메타 문자 대체 방법을 사용하여 결과 주소를 지정합니다.

표 9–5DELIVERY_OPTIONS 옵션에 사용할 수 있는 단일 문자 접두어를 보여 줍니다.

표 9–5 DELIVERY_OPTIONS MTA 옵션에 사용할 수 있는 단일 문자 접두어

접두어 문자 

설명 

@

메일이 프로세스 채널에 리디렉션되어야 한다는 사실을 보여주도록 플래그를 설정하십시오. 현재 사용자/그룹의 처리는 금지되어 있습니다. 플래그는 재처리 채널에서 보내지는 메일에 대해서는 무시됩니다. 

*

전달 옵션이 사용자에게 적용됩니다. 

&

전달 옵션이 그룹에 적용됩니다. 

$

이 사용자 또는 그룹의 확장이 지연된다는 것을 나타내는 플래그를 설정합니다. 

^

휴가 시작 및 종료 시간을 검사하여 이 전달 옵션이 실제로 유효한지 확인해야 한다는 것을 나타내는 플래그를 설정합니다. 

#

이 전달 옵션의 확장이 항목의 지정된 메일 호스트에서 발생할 필요가 없다는 것을 나타내는 플래그를 설정합니다. 즉, 다음 항목은 메일 호스트에 독립적입니다. 이렇게 하면 MTA는 주어진 사용자 또는 그룹의 모든 전달 옵션이 메일 호스트에 독립적인지 확인할 수 있습니다. 이 조건이 충족되면 MTA는 메일을 메일 호스트에 전달하지 않고도 즉시 항목에 대한 작업을 수행할 수 있습니다. 

/

이 전달 옵션에 의해 생성된 모든 주소가 보관된다는 것을 나타내는 플래그를 설정합니다. 이러한 수신자 주소를 포함하는 메일 파일은 .HELD 확장자를 가집니다.

!

MTA가 자동 회신 작업을 내부적으로 처리해야 한다는 것을 나타내는 플래그를 설정합니다. 이 접두어는 자동 회신 전달 옵션에서만 사용되어야 합니다. 옵션 값은 메일을 bitbucket 채널로 전송해야 합니다. 

*&가 모두 존재하지 않을 경우 전달 옵션은 사용자 및 그룹 모두에 적용됩니다.

전달 옵션에 사용할 추가 메타 문자

MTA의 새로운 URL 템플리트 기능 사용을 지원하기 위해 여러 추가 메타 문자가 다음과 같이 추가되었습니다.

표 9–6은 전달 옵션에서 사용하기 위한 추가 메타 문자와 그 설명을 보여 줍니다.

표 9–6 전달 옵션에 사용할 추가 메타 문자

메타 문자 

설명 

$\

후속 텍스트를 소문자로 바꿉니다. 

$^

후속 텍스트를 대문자로 바꿉니다. 

$_

후속 텍스트에 대해 대소문자 변환을 수행하지 않습니다. 

$nA

주소의 n번째 문자를 삽입합니다. 첫 번째 문자는 문자 0입니다. n이 생략될 경우 전체 주소가 대체됩니다. 이 메타 문자는 자동 회신 디렉토리 경로를 생성하는 데 사용됩니다.

$D

주소의 도메인 부분을 삽입합니다. 

$nE

n번째 예비 속성의 값을 삽입합니다. n이 생략될 경우 첫 번째 속성이 사용됩니다.

$F

전달 파일의 이름(mailDeliveryFileURL 속성)을 삽입합니다.

$nG

n번째 예비 속성의 값을 삽입합니다. n이 생략될 경우 두 번째 속성이 사용됩니다.

$nH

원래 주소에서 0부터 시작하는 도메인의 n번째 구성 요소를 삽입합니다. n이 생략될 경우 기본값은 0입니다.

$nI

별칭과 연관된 호스트된 도메인을 삽입합니다. 이 메타 문자는 표 9–7에 의미가 설명되어 있는 정수 매개 변수 n을 허용합니다.

$nJ

0부터 시작하는 호스트 도메인의 n번째 부분을 삽입합니다. n의 기본값은 0입니다.

$nO

현재 주소와 연관된 소스 루트를 삽입합니다. 이 메타 문자는 표 9–7에 의미가 설명되어 있는 정수 매개 변수 n을 허용합니다.

$K

사용자 또는 그룹에 대한 객체 클래스와 일치하는 LDAP 필터를 삽입합니다. LDAP_UG_FILTER 출력 전용 MTA 옵션의 설명을 참조하십시오.

$L

주소의 로컬 부분을 삽입합니다. 

$nM

UID의 n번째 문자를 삽입합니다. 첫 번째 문자는 문자 0입니다. n이 생략될 경우 전체 UID가 대체됩니다.

$P

프로그램 이름(mailProgramDeliveryInfo 속성)을 삽입합니다.

$nS

현재 주소와 연관된 하위 주소를 삽입합니다. 이 메타 문자는 표 9–7에 의미가 설명되어 있는 정수 매개 변수 n을 허용합니다.

$nU

현재 주소의 메일함 부분에서 따옴표가 없는 형식의 n번째 문자를 삽입합니다. 첫 번째 문자는 문자 0입니다. n이 생략될 경우 따옴표가 없는 전체 메일함이 대체됩니다. 

$nX

메일 호스트의 n번째 구성 요소를 삽입합니다. n이 생략될 경우 전체 메일 호스트가 삽입됩니다.

표 9–7은 정수 매개 변수가 $nI 및 $nS 메타 문자의 동작을 수정하는 방법을 보여 줍니다.

표 9–7 $nI 및 $nS 메타 문자의 동작 수정을 제어하는 정수

정수 

동작 설명 

0

사용할 수 있는 값이 없을 경우 실패합니다(기본값). 

사용할 수 있는 값이 있을 경우 해당 값을 삽입하고없을 경우에는 아무 것도 삽입하지 않습니다. 

사용할 수 있는 값이 있을 경우 해당 값을 삽입하고없을 경우에는 아무 것도 삽입하지 않고 앞의 문자를 삭제합니다(이 특수한 동작은 ims-ms 채널에 필요함).

사용할 수 있는 값이 있을 경우 해당 값을 삽입하고없을 경우에는 아무 것도 삽입하지 않고 다음 문자를 무시합니다. 

표 9–8은 메타 문자 외에 두 개의 특수한 템플리트 문자열을 보여 줍니다.

표 9–8 특수한 템플리트 문자열

특수한 템플리트 문자열 

설명 

*

그룹 확장을 수행합니다. 사용자 항목의 경우에는 이 값이 유효하지 않습니다. 

**

LDAP_FORWARDING_ADDRESS MTA 옵션에 의해 명명된 속성을 확장합니다. 기본값은 mailForwardingAddress입니다.

그룹 확장의 경우 예를 들어, 사용자의 mailDeliveryOption 값이 mailbox로 설정되면 스트라이프된 UID, 백분율 기호 다음의 호스트된 도메인(적용 가능한 경우), 더하기 기호 다음의 하위 주소(지정된 경우), 마지막으로 @ims-ms-daemon 으로 구성된 새 주소가 생성됩니다.

전달 옵션 기본값

이 시점에서 활성 전달 옵션의 목록이 비어 있을 경우 목록의 첫 번째 옵션(일반적으로 메일함)이 사용자에 대해 활성화되고 목록의 두 번째 옵션(일반적으로 구성원)이 그룹에 대해 활성화됩니다.

시작 및 종료 날짜 검사

전달 옵션 목록을 읽은 후에 시작 및 종료 날짜가 검사됩니다. 두 가지 속성이 존재하며 이러한 속성의 이름은 각각 LDAP_START_DATE(기본값 vacationStartDate ) 및 LDAP_END_DATE(기본값 vacationEndDate) MTA 옵션에 의해 제어됩니다. 하나 이상의 활성 전달 옵션이 ^ 접두어 문자를 지정한 경우 이러한 옵션의 값이 현재 날짜에 대해 검사됩니다. 현재 날짜가 이러한 옵션에 지정된 범위를 벗어날 경우 ^ 접두어를 가진 전달 옵션이 활성 집합에서 제거됩니다. 자세한 내용은 휴가 자동 회신 속성을 참조하십시오.

Optin 및 Presence 속성

LDAP_OPTIN MTA 옵션을 사용하면 스팸 필터 수신 선택 기능 값의 목록을 포함하는 LDAP 속성을 지정할 수 있습니다. 이 옵션이 지정되고 속성이 존재할 경우 현재의 스팸 필터 수신 선택 기능 목록에 해당 속성이 추가됩니다. 또한 LDAP_DOMAIN_ATTR_OPTIN MTA 옵션에 의해 설정된 도메인 수준 속성이 설정하는 모든 값도 이 목록에 추가됩니다.

LDAP_PRESENCE MTA 옵션을 사용하면 사용자에 대한 존재 여부 정보를 반환하기 위해 확인할 수 있는 URL을 지정할 수 있습니다. 이 옵션이 지정되고 속성이 존재할 경우 시브(sieve) 존재 여부 테스트와 함께 사용할 수 있도록 속성 값이 저장됩니다. 사용자 항목에 대한 값이 존재하지 않을 경우 LDAP_DOMAIN_ATTR_PRESENCE MTA 옵션에 의해 설정된 도메인 수준 속성이 이 URL의 소스로 사용됩니다.

시브(Sieve) 필터 처리

다음은 이 항목에 적용되는 시브(sieve) 필터에 대해 mailSieveRuleSource 속성이 검사됩니다. 이 속성은 존재할 경우 이 시점에서 구문 분석 및 저장됩니다. 이 속성 값에 대한 두 가지 가능한 형식으로는 완전한 시브(sieve) 스크립트를 포함하는 단일 값 형식과 각 값이 시브(sieve) 스크립트를 포함하는 다중 값 형식이 있습니다. 후자의 형식은 웹 필터 생성 인터페이스에 의해 생성됩니다. 값의 순서를 지정하고 적절하게 값을 결합하기 위해 특수한 코드가 사용됩니다.

mailSieveRuleSource 속성 사용을 특별히 LDAP_FILTER MTA 옵션을 사용하여 무시할 수 있습니다.

지연된 처리 제어

다음은 mailDeferProcessing 속성이 검사됩니다. 이 속성은 LDAP_REPROCESS MTA 옵션을 사용하여 변경할 수 있습니다. 이 속성이 존재하고 no로 설정된 경우 처리는 정상적으로 처리됩니다. 그러나 이 속성이 yes로 설정되고 현재 소스 채널이 재처리 채널이 아닐 경우 이 항목의 확장이 중지되며 원래 user@domain 주소가 단순히 재처리 채널의 대기열에 포함됩니다. 이 속성이 존재하지 않을 경우 전달 옵션 처리와 연관된 지연된 처리 문자 접두어의 설정이 검사됩니다. 이에 대한 예는 전달 옵션 처리 절을 참조하십시오. 사용자에 대한 기본값은 no입니다. 그룹에 대한 기본값은 DEFER_GROUP_PROCESSING MTA 옵션에 의해 제어되며 이 옵션의 기본값은 1(yse)입니다. 사용자 항목의 경우 이 시점에서 별칭 처리가 완료됩니다.

그룹 확장 속성

여러 추가 속성이 그룹 확장과 연관되며 이 시점에서 처리되어야 합니다. 이러한 속성의 이름은 모두 다양한 MTA 옵션을 통해 구성할 수 있습니다.

표 9–9에는 기본 속성 이름, 속성 이름을 설정하기 위한 MTA 옵션 및 MTA가 속성을 처리하는 방법이 나열되어 있습니다. 이 표에 있는 요소의 순서는 다양한 그룹 속성이 처리되는 순서를 보여 줍니다. 정확한 작업을 위해서는 이 순서가 필수적입니다.

표 9–9 설정할 그룹 확장 기본 속성 및 MTA 옵션

기본 속성 

(속성 이름을 설정하기 위한 MTA 옵션) 속성이 처리되는 방법 

mgrpMsgRejectAction

(LDAP_REJECT_ACTION) 후속 액세스 검사가 실패할 경우 발생하는 작업을 제어하는 단일 값 속성입니다. 값은TOMODERATOR하나만 정의되며 이 값은 설정된 경우 모든 액세스 실패를 mgrpModerator 속성에 의해 지정된 중재자로 리디렉션하도록 MTA에 지시합니다. 이 속성에 값(기본값 및 다른 모든 값)이 지정되면 오류가 보고되며 메일이 거부됩니다.

mailRejectText

(LDAP_REJECT_TEXT) 이 속성의 첫 번째 값에 저장된 텍스트의 첫 번째 행이 저장됩니다. 다음 인증 속성 중 하나로 인해 메일이 거부될 경우 이 텍스트가 반환됩니다. 이것은 텍스트가 SMTP 응답에 나타날 수 있으므로 값을 US-ASCII로 제한하여 현재 메시징 표준을 따르도록 해야 한다는 것을 의미합니다.

mgrpBroadcasterPolicy

(LDAP_AUTH_POLICY) 그룹에 보내는 데 필요한 인증 수준을 지정합니다. 가능한 토큰은 SMTP_AUTH_REQUIRED 또는 AUTH_REQ(두 가지 모두 SMTP AUTH 명령을 사용하여 그룹에 보내는 순서대로 보내는 사람을 식별해야 함을 의미), PASSWORD_REQUIRED, PASSWD_REQUIRED 또는 PASSWD_REQ(이 세 가지는 mgrpAuthPassword 속성에 지정된 목록의 비밀번호가 메일의 Approved: 헤더 필드에 표시되어야 함을 의미), OR(이 목록에 대해 OR_CLAUSES MTA 옵션 설정을 1로 변경), AND(이 목록에 대해 OR_CLAUSES 옵션 설정을 0으로 변경), NO_REQUIREMENTS(no-op) 등입니다. 여러 값이 허용되고 각 값은 쉼표로 구분된 토큰 목록으로 구성될 수 있습니다.

SMTP AUTH가 호출된 경우에는 또한 MAIL FROM 주소가 아니라 SASL 계층에 의해 제공된 전자 메일 주소에 대해 이후의 모든 권한 부여 검사가 수행된다는 것을 의미합니다. 

mgrpAllowedDomain

(LDAP_AUTH_DOMAIN) 이 그룹에 메일을 제출하는 것이 허용된 도메인입니다. 0(기본값)으로 설정된 OR_CLAUSES 옵션과의 일치 실패는 액세스 검사가 실패했고 모든 후속 테스트를 수행하지 않는다는 의미입니다. 1로 설정된 OR_CLAUSES MTA 옵션과의 일치 실패는 “failure pending” 플래그를 설정합니다. 즉, 액세스 검사를 계속하려면 다른 액세스 검사가 성공해야 합니다. 전송자가 이미 LDAP_AUTH_URL과 일치되어 있으면 이러한 검사를 수행하지 않습니다. 값이 여러 개일 수 있고 글롭 와일드카드가 허용됩니다.

mgrpDisallowedDomain

(LDAP_CANT_DOMAIN) 이 그룹에 메일을 제출하는 것이 허용되지 않는 도메인입니다. 일치는 액세스 검사가 실패했고 모든 후속 검사가 수행되지 않는다는 의미입니다. 전송자가 이미 LDAP_AUTH_URL과 일치되어 있으면 이러한 검사를 수행하지 않습니다. 값이 여러 개일 수 있고 글롭 와일드카드가 허용됩니다.

mgrpAllowedBroadcaster

(LDAP_AUTH_URL) 이 그룹에 메일을 전송하는 것이 허용된 메일 주소를 식별하는 URL입니다. 값이 여러 개일 수 있습니다. 각 URL은 주소 목록으로 확장되며 현재 봉투의 From: 주소에 대해 각 주소가 지시합니다. 0(기본값)으로 설정된 OR_CLAUSES MTA 옵션과의 일치 실패는 액세스 검사가 실패했고 모든 후속 테스트를 수행하지 않는다는 의미입니다. 1로 설정된 OR_CLAUSES MTA 옵션과의 일치 실패는 “failure pending” 플래그를 설정합니다. 즉, 액세스 검사가 성공하기 위해서는 다른 액세스 검사가 성공해야 합니다. 일치하는 경우에도 후속 도메인 액세스 검사는 비활성화됩니다. 수행되는 확장은 모든 액세스 제어 검사를 비활성화하는 SMTP EXPN과 비슷합니다.

mgrpDisallowedBroadcaster

(LDAP_CANT_URL) 메일을 이 그룹에 전송하는 것이 허용되지 않는 메일 주소를 식별하는 URL입니다. 값이 여러 개일 수 있습니다. 각 URL은 주소 목록으로 확장되며 현재 봉투의 From: 주소에 대해 각 주소가 지시합니다. 일치는 액세스 검사가 실패했고 모든 후속 검사가 수행되지 않는다는 의미입니다. 수행되는 확장은 모든 액세스 제어 검사를 비활성화하는 SMTP EXPN과 비슷합니다.

mgrpMsgMaxSize

(LDAP_ATTR_MAXIMUM_MESSAGE_SIZE) 그룹에 전송할 수 있는 최대 메일 크기(바이트)입니다. 이 속성은 폐기되었지만 이전 버전과의 호환성을 위해 계속 지원됩니다. 대신, 새 mailMsgMaxBlocks 속성을 사용해야 합니다.

mgrpAuthPassword

(LDAP_AUTH_PASSWORD) 목록에 게시하는 데 필요한 비밀번호를 지정합니다. mgrpAuthPassword속성이 존재하면 재처리 통과가 강제됩니다. 메일이 재처리 채널의 대기열에 포함되면 헤더에서 가져온 비밀번호가 봉투에 포함됩니다. 그런 다음 재처리 도중에 해당 비밀번호는 봉투에서 가져와 이 속성에 대해 검사됩니다. 또한 실제로 사용되는 비밀번호만 헤더 필드에서 제거됩니다.

이 속성에서 OR_CLAUSES MTA 옵션은 다른 액세스 검사 속성의 경우와 같은 방식으로 작동됩니다. 

mgrpModerator

(LDAP_MODERATOR_URL) 일련의 주소로 확장될 이 속성에 의해 제공된 URL 목록입니다. 이 주소 목록의 해석은 LDAP_REJECT_ACTION MTA 옵션의 설정에 따라 달라집니다. LDAP_REJECT_ACTIONTOMODERATOR로 설정된 경우 이 속성은 액세스 검사 중 하나가 실패할 경우에 메일을 전송할 중재자 주소를 지정합니다. LDAP_REJECT_ACTION이 누락되거나 다른 값을 가진 경우 이 주소 목록은 봉투의 보낸 사람 주소와 비교됩니다. 일치하는 항목이 있을 경우 처리가 계속됩니다. 일치하는 항목이 없을 경우 이 속성에 지정된 모든 주소로 메일이 다시 전송됩니다. 이 속성을 확장하는 작업은 이 속성 값을 그룹에 대한 URL 목록으로 만드는 방법으로 구현됩니다. 그룹과 연관된 RFC822 주소 또는 DN의 모든 목록이 지워지며 그룹에 대한 전달 옵션은 members로 설정됩니다. 마지막으로 이 표에 나열된 후속 그룹 속성이 무시됩니다.

mgrpDeliverTo

(LDAP_GROUP_URL1) 확장될 경우 메일 목록 구성원 주소의 목록을 제공하는 URL 목록입니다.

memberURL

(LDAP_GROUP_URL2) 확장될 경우 메일 목록 구성원 주소의 또 다른 목록을 제공하는 URL의 다른 목록입니다.

uniqueMember

(LDAP_GROUP_DN) 그룹 구성원의 DN 목록입니다. DN은 전체 하위 트리를 지정할 수 있습니다. 고유한 구성원 DN은 LDAP URL에 이러한 DN을 내장하는 방법으로 확장됩니다. 사용할 정확한 URL은 GROUP_DN_TEMPLATE MTA 옵션에 의해 지정됩니다. 이 옵션의 기본값은 다음과 같습니다. ldap:///$A?mail?sub?(mail=*)

$AuniqueMember DN이 삽입되는 지점을 지정합니다.

mgrpRFC822MailMember

(LDAP_GROUP_RFC822) 이 목록에 있는 구성원의 메일 주소입니다.

rfc822MailMember

(LDAP_GROUP_RFC822) rfc822MailMember는 이전 버전과의 호환성을 위해 지원됩니다. rfc822MailMembermgrpRFC822MailMember 중에서 하나를 주어진 모든 그룹에 사용할 수 있습니다.

mgrpErrorsTo

(LDAP_ERRORS_TO) 봉투의 메일 발송자(MAIL FROM) 주소를 속성이 지정하는 주소로 설정합니다.

mgrpAddHeader

(LDAP_ADD_HEADER) 속성에 지정된 헤더를 헤더 자르기 ADD 옵션으로 변환합니다.

mgrpRemoveHeader

(LDAP_REMOVE_HEADER) 지정된 헤더를 헤더 자르기 MAXLINES=-1 옵션으로 변환합니다.

mgrpMsgPrefixText

(LDAP_PREFIX_TEXT) 지정된 텍스트를 메일 텍스트(있을 경우)의 시작 부분에 추가합니다.

mgrpMsgSuffixText

(LDAP_SUFFIX_TEXT) 지정된 텍스트를 메일 텍스트(있을 경우)의 끝 부분에 추가합니다.

No Default

(LDAP_ADD_TAG) 지정된 텍스트의 제목을 검사하며 없을 경우 제목 필드의 첫 부분에 텍스트가 추가됩니다.

SMTP EXPN 명령: mgmanMemberVisibility 또는 확장의 일부인 특수한 그룹 확장에서는 최종 속성 하나가 검사됩니다. LDAP_EXPANDABLE MTA 옵션을 사용하여 검사할 다른 속성을 선택할 수 있습니다. 가능한 값에는anyone(누구나 그룹을 확장할 수 있다는 것을 의미), all 또는 true(확장이 허용되려면 사용자가 SASL로 성공적으로 인증되어야 한다는 것을 의미), 그리고 none(확장이 허용되지 않는다는 것을 의미)이 있습니다. 인식되지 않는 값은 none으로 해석됩니다. 이 속성이 존재하지 않을 경우 EXPANDABLE_DEFAULT MTA 옵션은 확장이 허용되는지 여부를 제어합니다.

별칭 항목은 도메인 항목과 비슷한 방식으로 캐시됩니다. 별칭 캐시를 제어하는 MTA 옵션은 ALIAS_ENTRY_CACHE_SIZE(기본값은 1000개 항목) 및 ALIAS_ENTRY_CACHE_TIMEOUT(기본값은 600초)입니다. 주어진 별칭에 대한 전체 LDAP 반환 값은 캐시에 보관됩니다.

별칭 항목의 네거티브 캐싱은 ALIAS_ENTRY_CACHE_NEGATIVE MTA 옵션에 의해 제어됩니다. 0이 아닌 값은 별칭 일치 실패의 캐싱을 활성화하고 값 0은 이 캐싱을 비활성화합니다. 별칭 항목의 네거티브 캐싱은 기본적으로 비활성화되는데 이것은 잘못된 주소가 실제로 반복적으로 지정될 가능성이 별로 없기 때문입니다. 또한 네거티브 캐싱은 디렉토리에 추가된 새 사용자를 제때에 인식하는 데 방해가 될 수 있습니다. 그러나 부속 도메인이 많이 사용될 경우 사이트는 별칭의 네거티브 캐싱을 다시 활성화하는 것을 고려해야 합니다. ALIAS_URL0에 지정된 URL에 의해 수행되는 검색은 성공할 가능성이 적습니다.

주소 역방향

Direct LDAP를 사용한 주소 역방향은 USE_REVERSE_DATABASE 값 4로 시작되며 이 값은 역방향 데이터베이스를 사용하지 않도록 설정합니다. 그런 다음 주소 역방향은 앞에서 설명한 라우팅 기능을 토대로 작성됩니다. 특히 이전 버전에서는 다음 형식의 역방향 URL 지정으로 시작되었습니다.

REVERSE_URL=ldap:///$V?mail?sub?$Q

$V 메타 문자는 별칭 URL과 관련하여 이미 설명되었습니다. 그러나 $Q 메타 문자는 별칭 URL에 사용되는 $R 메타 문자와 기능이 비슷하지만 특별히 주소 역방향에 사용하도록 되어 있습니다. $R과 달리 이 메타 문자는 주소 역방향의 후보인 주소가 포함된 속성을 검색하는 필터를 생성합니다. 검색할 속성 목록은 MTA 옵션 LDAP_MAIL_REVERSES에서 가져옵니다. 이 옵션이 설정되지 않은 경우 local.imta.schematag configutil 매개 변수가 검사되고 그 값에 따라 적절한 기본 속성 집합이 선택됩니다.

표 9–10에서는 local.imta.schematag 값과 선택된 기본 속성을 보여 줍니다.

표 9–10 local.imta.schematag 값과 속성

스키마 태그 값 

속성 

sims40

mail,rfc822mailalias

nms41

mail,mailAlternateAddress

ims50

mail,mailAlternateAddress

그러나 $Q는 사용하기에 더 이상 적합하지 않습니다. 메일 캡처와 다른 기능이 제대로 작동하도록 하기 위해 일치하는 항목이 발생했다는 사실 외에도 일치한 속성에 주의하도록 주소 역방향이 향상되었습니다. 이것은 $Q 대신에 $R을 사용하여 필터를 지정해야 한다는 것을 의미합니다. 또한 주소 역방향이 필요할 수 있는 속성 목록을 반환하는 $N 메타 문자가 추가되었습니다. 결과 옵션 값은 다음과 같습니다.

REVERSE_URL=ldap:///$V?$N?sub?$R

항상 그랬던 것처럼 local.imta.schematag는 쉼표로 구분된 목록이 될 수 있습니다. 둘 이상의 스키마가 지원될 경우 중복 항목이 제거된 결합된 속성 목록이 사용됩니다.

또한 이 필터는 원래 제공되었던 주소뿐만 아니라 로컬 부분이 동일하지만 실제로 도메인 트리에서 발견된 도메인( 다시 쓰기 규칙 방법에서 저장)을 가진 주소를 검색합니다. 도메인 트리 조회의 반복 특성은 두 개의 주소가 다를 수 있다는 것을 의미합니다.

예를 들어, 도메인 siroe.com이 도메인 트리에 표시되며 MTA가 다음 주소를 찾는다고 가정해 봅니다.

u@host1.siroe.com

$Rims50 스키마 태그의 확장 결과로 얻어지는 필터는 다음과 같습니다.


     (|(mail=u@siroe.com) 
     (mail=u@host1.siroe.com)
     (mailAlternateAddress=u@siroe.com)
     (mailAlternateAddress=u@host1.siroe.com)
     (mailEquivalentAddress=u@siroe.com)
     (mailEquivalentAddress=u@host1.siroe.com))

역방향 URL이 정규화된 주소를 포함하는 속성을 명시적으로 지정한다는 것에 주의합니다. 일반적으로 이 속성은 메일 속성입니다.

URL이 생성된 후 LDAP 검색이 수행됩니다. 검색이 성공적이면 반환된 첫 번째 속성 값이 원래 주소를 대체합니다. 검색에 실패하거나 오류가 발생하면 원래 주소가 변경되지 않습니다.

주소 역방향 작업이 수행되는 빈도(특히 메일 헤더에 표시될 수 있는 주소 수가 지정된 경우)와 관련 디렉토리 쿼리의 비용으로 인해 부정적 및 긍정적 결과를 모두 캐시해야 합니다. 이 작업은 동적으로 확장되는 메모리 내장의 개방형 체인 해시 테이블을 통해 구현됩니다. 캐시의 최대 크기는 REVERSE_ADDRESS_CACHE_SIZE MTA 옵션(기본값 100000)으로 설정하며 캐시의 항목에 대한 시간 초과는 REVERSE_ADDRESS_CACHE_TIMEOUT MTA 옵션(기본값 600초)으로 설정합니다. 캐시는 실제로 LDAP URL 및 LDAP 결과가 아니라 주소 자체를 저장합니다.

비동기 LDAP 작업

비동기 조회는 경우에 따라 성능 문제를 야기할 수 있는 큰 LDAP 결과 전체를 메모리에 저장할 필요가 없게 만듭니다. MTA는 MTA에 의한 다양한 유형의 조회를 비동기식으로 수행하는 기능을 제공합니다.

비동기 LDAP 조회의 사용은 LDAP_USE_ASYNC MTA 옵션에 의해 제어됩니다. 이 옵션은 비트 인코딩 값입니다. 각 비트는 설정된 경우 MTA 내의 특정 LDAP 사용과 함께 비동기 LDAP 조회 사용을 활성화합니다.

표 9–11에서는 option.dat 파일의 LDAP_USE_ASYNC MTA 옵션에 대한 비트 및 값 설정을 보여 줍니다.

표 9–11 LDAP_USE_ASYNC MTA 옵션에 대한 설정

비트 

값 

특정 LDAP 사용 

LDAP_GROUP_URL1(mgrpDeliverTo) URL

LDAP_GROUP_URL2(memberURL) URL

LDAP_GROUP_DN(UniqueMember) DN

auth_list, moderator_list, sasl_auth_listsasl_moderator_list nonpositional 목록 매개 변수 URL

16 

cant_list, sasl_cant_list nonpositional 목록 매개 변수 URL

32 

originator_reply nonpositional 목록 매개 변수 URL

64 

deferred_list, direct_list, hold_list, nohold_list nonpositional 목록 매개 변수 URL

128 

username_auth_list, username_moderator_list, username_cant_list nonpositional 목록 매개 변수 URL

256 

별칭 파일 목록 URL 

512 

별칭 데이터베이스 목록 URL 

10 

1024 

LDAP_CANT_URL(mgrpDisallowedBroadcaster) 외부 수준 URL

11 

2048 

LDAP_CANT_URL 내부 수준 URL

12 

4096 

LDAP_AUTH_URL(mgrpAllowedBroadcaster) 외부 수준 URL

13 

8192 

LDAP_AUTH_URL 내부 수준 URL

14 

16384 

LDAP_MODERATOR_URL(mgrpModerator) URL

LDAP_USE_ASYNC MTA 옵션의 기본값은 0이며 이것은 비동기 LDAP 조회가 기본적으로 비활성화된다는 것을 의미합니다.

설정 요약

Direct LDAP를 활성화하려면 다음 MAT 옵션을 설정해야 합니다.


ALIAS_MAGIC=8764
ALIAS_URL0=ldap:///$V?*?sub?$R
USE_REVERSE_DATABASE=4
USE_DOMAIN_DATABASE=0
REVERSE_URL=ldap:///$V?mail?sub?$Q

부속 도메인을 지원하려는 경우 다음 추가 옵션을 설정해야 합니다.


DOMAIN_MATCH_URL=ldap:///$B?msgVanityDomain?sub? \
(msgVanityDomain=$D)
ALIAS_URL1=ldap:///$B?*?sub? (&(msgVanityDomain=$D)$R) 
ALIAS_URL2=ldap:///$1V?*?sub?(mailAlternateAddress=@$D)

이러한 옵션의 마지막 부분은 호스트된 도메인과 부속 도메인 모두에서 와일드카드로 지정된 로컬 부분의 대소문자를 처리합니다. 와일드카드로 지정된 로컬 부분에 대한 지원은 필요하지만 부속 도메인 지원이 필요하지 않은 경우에는 다음 옵션을 사용해야 합니다.

ALIAS_URL1=ldap:///$V?*?sub?&(mailAlternateAddress=@$D)

filter ssrd:$A 절을 MTA 구성 파일(imta.cnf)의 ims-ms 채널 정의에서 제거해야 합니다.