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

16장 휴가 자동 메일 회신

자동으로 생성된 전자 메일 응답(자동 회신), 특히 휴가 메일에 대해 MTA는 MDN(Message Disposition Notification) 및 Sieve 스크립트 언어를 사용합니다. MDN은 메일의 전달 처리를 보고하기 위해 MTA가 보낸 사람 및/또는 포스트마스터에게 보내는 전자 메일입니다. MDN은 또한 읽음 확인, 확인, 수신 알림 또는 전달 확인이라고도 합니다. Sieve는 메일 필터를 만드는 데 사용되는 간단한 스크립트 언어입니다. Messaging Server 5.x와 달리 ISO-2022-JP 대신 UTF-8 문자 세트가 사용됩니다.

이 장에서는 휴가 자동 회신 기법에 대해 설명합니다. 대부분의 경우 기본 구성은 수정할 필요가 없지만 백엔드 메일 저장소가 아니라 MTA 릴레이 시스템에서 휴가 처리를 수행하도록 시스템을 구성해야 할 수 있습니다.

이 장은 다음 내용으로 구성되어 있습니다.

휴가 자동 회신 개요

휴가 Sieve 스크립트는 다양한 LDAP 휴가 속성으로부터 자동으로 생성됩니다( 휴가 자동 회신 속성 참조). 또한 부가적인 유연성을 위해 이러한 스크립트를 명시적으로 지정할 수도 있습니다. 기본 휴가 추적 기법은 다양한 보낸 사람에게 회신을 보낸 시간을 추적하는 파일 집합(원하는 수신자 당 하나)입니다.


주 –

휴가 메일의 문자 세트가 UTF-8로 변경되었습니다.


기본적으로 MTA는 백엔드 저장소 시스템에서 휴가를 평가합니다. 그러나 MTA 릴레이가 백엔드 저장소처럼 많은 작업을 처리하는 것은 아니기 때문에 백엔드 저장소 대신 메일 릴레이 시스템에서 휴가 메일을 평가하도록 하여 성능을 높일 수 있습니다. 이 기능을 사용하면 각각의 릴레이에서 서로 다른 메일을 처리하기 때문에 원하는 것보다 더 많은 수의 휴가 응답이 보내질 수 있습니다. 휴가 메일을 원하는 수보다 더 많이 보내지 않게 하려면 릴레이 간에 파일 추적을 공유할 수 있습니다. 이 방법도 충분하지 않다고 생각될 경우에는 휴가 메일이 백엔드 저장소 시스템에서 항상 평가되게 할 수 있습니다.

자동 회신 구성

전달 주소가 일련의 패턴을 통해 생성됩니다. 사용되는 패턴은 mailDeliveryOption 속성에 정의된 값에 따라 다릅니다. 전달 주소는 각각의 유효한 mailDeliveryOption에 대해 생성됩니다. 패턴은 MTA 옵션 DELIVERY_OPTIONS에 의해 option.dat 파일에 정의됩니다. option.dat 파일의 DELIVERY_OPTIONS에 있는 기본 자동 회신 규칙은 다음과 같습니다.

*^!autoreply=$M+$D@bitbucket

MTA는 자동 회신 DELIVERY_OPTION MTA 옵션에 “^” 기호를 기록합니다. 그렇게 하면 MTA가 휴가 날짜를 확인하게 됩니다. 현재 날짜가 휴가 날짜 범위에 속하는 경우 처리가 계속되며, MTA는 자동 회신 DELIVERY_OPTION에 “!”를 기록합니다. 그런 다음 사용자가 입력하는 다양한 자동 회신 LDAP 속성을 기반으로 휴가 Sieve 스크립트를 만듭니다. 자동 회신 규칙에는 접두어 문자 ”!’, ”#’, ”^’ 및 ”*’가 있습니다.

메일함 전달 옵션에 ”!’ 플래그를 표시할 수 있습니다. 그럴 경우 휴가 스크립트 생성이 무조건적으로 사용됩니다. ”^’ 플래그에 의해 추가로 금지할 수 있도록 자동 회신 방법이 별도의 전달 옵션에 의해 활성화됩니다. 이 단계에서 날짜를 확인하는 것이 Sieve 논리를 사용하는 것보다 더 효과적입니다.

표 16–1에는 첫 번째 열의 자동 회신 규칙과 두 번째 열의 해당 정의에 사용되는 접두어 문자가 표시되어 있습니다.

표 16–1 DELIVERY_OPTIONS의 자동 회신 규칙에 사용되는 접두어 문자

접두어 문자 

정의 

!

자동 회신 Sieve 스크립트 생성을 사용합니다. 

#

릴레이에서 프로세스를 처리하도록 허용합니다. 

^

휴가 날짜에 옵션을 평가하도록 표시된 경우에만 옵션을 평가합니다.  

*

사용자에게만 규칙을 적용할 수 있습니다. 

자동 회신 규칙은 bitbucket 채널의 대상 주소를 지정합니다. 자동 회신이 생성되면 이 방법에 의해 메일이 전달된 것으로 간주되지만 MTA 방법을 사용하려면 전달 주소가 필요합니다. bitbucket 채널에 전달되는 내용은 삭제됩니다.

백엔드 시스템에서 자동 회신 구성

DELIVERY_OPTIONS의 기본 자동 회신 규칙은 사용자에게 서비스를 제공하는 메일 서버에서 자동 회신을 처리합니다. 백엔드 저장소 시스템에서 휴가 메일이 평가되도록 하려면 아무 것도 구성할 필요가 없습니다. 기본 동작입니다.

Procedure릴레이에서 자동 회신 구성 방법

성능 향상을 위해 백엔드 저장소 시스템 대신 릴레이에서 휴가를 평가하려면 option.dat 파일을 편집하고 DELIVERY_OPTIONS의 자동 회신 규칙 앞에 # 문자를 붙입니다.

단계
  1. an 편집기를 사용하여 option.dat 파일을 엽니다.

  2. 자동 회신 규칙이 다음과 같이 표시되도록 DELIVERY_OPTIONS 옵션을 추가하거나 변경합니다.

    #*^!autoreply=$M+$D@bitbucket

    기본 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

    이렇게 하면 릴레이에서 프로세스를 처리할 수 있습니다. MTA가 릴레이에서 자동 회신을 수행하도록 지정한 경우 특정 사용자가 최근에 휴가 알림 메일을 보냈는지 여부를 각 릴레이에서 독립적으로 추적하도록 하거나 또는 이 정보를 릴레이 간에 공유하도록 할 수 있습니다. 전자의 경우가 더 간단합니다. 특히, 휴가 알림 메일을 보내는 횟수가 문제가 되지 않는 경우에 그렇습니다. 휴가 알림 메일을 보내는 빈도 규칙을 엄격하게 적용하려면 릴레이 간에 정보를 공유해야 합니다. 릴레이 간에 정보를 공유하려면 파일이 NFS에 마운트되어 있어야 합니다.

    이러한 파일의 위치는 VACATION_TEMPLATE 옵션에 의해 제어됩니다. option.dat 파일에서 이 옵션을 /<path>/%A로 설정해야 합니다. 여기서 <path>는 여러 릴레이 시스템 간에 공유되는 디렉토리의 경로입니다. 템플리트는 file:URL이어야 하며, $U를 사용하여 사용자 이름을 대체해야 합니다. 기본 설정은 다음과 같습니다.

    VACATION_TEMPLATE=file:///opt/SUNWmsgsr/data/vacation/$3I/$1U/$2U/$U.vac

    메타 문자에 대한 설명은 표 9–6을 참조하십시오.


    주 –

    이제 휴가 파일 템플리트에 UID에 대한 액세스 권한이 있으므로 사용자 의 UID를 기반으로 작성될 휴가 파일에 경로를 허용하게 됩니다. 추가적으로, 휴가 파일 경로를 확인하는 데 사용된 주소는 사용자의 메일 속성에 저장된 주소이며, 현재 수신자 주소는 이전에 사용되었습니다.


휴가 자동 회신 작동 원리

휴가 작업을 호출하면 다음과 같이 작동합니다.

  1. Sun Java System Messaging Server에서 휴가 작업이 시스템 수준 Sieve 스크립트가 아니라 사용자 수준으로 수행되었는지 확인합니다. 휴가가 시스템 수준 스크립트에서 사용되는 경우 오류가 발생합니다.

  2. “no vacation notice” 내부 MTA 플래그가 선택됩니다. 이 플래그를 설정하면 프로세스가 종료되고 휴가 알림이 보내지지 않습니다.

  3. 메일에 대한 반송 주소가 선택됩니다. 이 주소가 비어 있으면 프로세스가 종료되고 휴가 알림이 보내지지 않습니다.

  4. MTA가 :addresses 태그 인수에 지정된 사용자 주소 또는 추가 주소가 현재 메일의 To:, Cc:, Resent-to: 또는 Resent-cc: 헤더 필드에 표시되는지 확인합니다. 헤더 필드에 주소가 없는 경우 프로세스가 종료되고 휴가 알림이 보내지지 않습니다.

  5. Messaging Server는 :subject 인수와 이유 문자열을 구성합니다. 이 문자열은 현재 메일의 반송 주소와 함께 이전 휴가 응답의 사용자 단위 레코드에 대해 확인됩니다. :days 인수에 허용된 시간 내에 응답이 이미 보내진 경우 프로세스가 종료되고 응답이 보내지지 않습니다.

  6. Messaging Server는 :subject 인수, 이유 문자열 및 :mime 인수로부터 휴가 알림을 만듭니다. 이 응답 메일에 다음과 같은 두 기본 형식을 사용할 수 있습니다.

    • RFC 2298에 지정된 형식의 메일 배포 알림(첫 번째 부분에 이유 텍스트가 포함되어 있음)

    • 단일 부분 텍스트 회신. 이 형식은 “회신” 자동 회신 모드 속성 설정을 지원하는 데만 사용됩니다.

Messenger Express를 통해 휴가 메일이 구성된 경우 mailautoreplymode가 자동으로 reply로 설정된다는 것에 주의합니다.

“no vacation notice” MTA 플래그는 기본적으로 선택되어 있지 않습니다. 이 플래그는 비표준 novacation 작업을 사용하여 시스템 수준 Sieve 스크립트로 설정할 수 있습니다. novacation Sieve 작업은 시스템 수준 Sieve 스크립트에서만 허용됩니다. 사용자 수준 스크립트에서 이 플래그를 사용하면 오류가 발생합니다. 이 작업을 사용하여 휴가 회신에 대한 사이트 차원 제한(예: 하위 문자열 “MAILER-DAEMON”이 포함된 주소에 대한 회신 차단)을 구현할 수 있습니다.

사용자 단위 응답별 정보는 로컬 사용자 당 하나씩 일반 텍스트 파일에 저장됩니다. 이러한 파일의 위치 및 이름 지정 방법은 VACATION_TEMPLATE MTA 옵션 설정에 지정됩니다. 이 옵션을 file: URL로 설정해야 합니다.

이러한 파일은 자동으로 유지 관리되며 VACATION_CLEANUP 정수 MTA 옵션 설정에 의해 제어됩니다. 이러한 파일 중 하나가 열릴 때마다 현재 시간(초) modulo 값이 계산됩니다. 결과가 0이면 파일이 스캔되고 모든 만료된 항목이 제거됩니다. 옵션 기본값은 200이고 200번에 한 번씩 정리가 수행됨을 의미합니다.

이러한 일반 텍스트 파일을 읽고 쓰는 데 사용되는 방법은 NFS에 대해 올바르게 작업을 수행할 수 있는 방식으로 디자인됩니다. 그렇게 하면 여러 MTA에서 공통 파일 시스템에서 단일 파일 집합을 공유할 수 있습니다.

휴가 자동 회신 속성

휴가 작업에 사용되는 사용자 LDAP 디렉토리 속성 집합은 다음과 같습니다.