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

자동 메일 제거(만료 및 제거) 기능 설정

자동 메일 제거 기능(만료 및 제거라고도 함)은 관리자가 정의한 일련의 기준을 기반으로 메일 저장소에서 메일을 자동으로 제거합니다. 이전 메일이나 과도하게 큰 메일, 보았거나 삭제한 메일, 특정 Subject: 행을 가진 메일 등을 자동으로 제거하는 데이 기능을 사용할 수 있습니다. 이 기능은 다음 제거 기준을 허용합니다.

이 기능은 메일을 정리 및 제거하는 imexpire 유틸리티에 의해 수행됩니다. 메일 제거 프로세스에 대한 자세한 내용은 메일 저장소에서 메일을 제거하는 방법을 참조하십시오.


주 –

서버는 경고 없이 메일을 제거하므로 자동 메일 제거 정책을 사용자에게 알리는 것이 중요합니다. 메일이 갑작스럽게 제거되면 사용자와 관리자가 매우 당황할 수 있습니다.


imexpire 작동 원리

imexpire는 명령줄에서 호출하거나 imsched 데몬에 의해 자동으로 실행되도록 예약할 수 있습니다. 관리자는 store.expirerule이라는 파일에 만료 규칙 집합을 지정합니다. 이 파일은 메일 제거 기준을 지정합니다. 각각 규칙 범위와 관련된 디렉토리에 저장된 여러 개의 파일이 있을 수 있습니다. 즉, 전체 메일 저장소에 전역적으로 적용되는 규칙과 특정 분할 영역에 적용되는 규칙, 그리고 사용자에 적용되는 규칙이 각각 다른 디렉토리에 저장됩니다.


주 –

콘솔이나 configutil 명령을 사용하여 전역 만료 규칙을 지정할 수도 있지만 store.expirerule을 사용하는 방법이 선호됩니다. 콘솔이나 configutil을 사용하여 너무 많은 규칙을 만들면 성능 문제가 발생할 수 있습니다.


imexpire는 시작 시에 모든 만료 규칙을 로드합니다. 기본적으로 imexpire는 분할 영역당 하나의 스레드를 만듭니다. 각 스레드는 할당된 분할 영역 아래의 사용자 폴더 목록을 거치는 과정에서 로컬 만료 규칙 파일을 로드합니다. 이 만료 기능은 각 폴더에 적용 가능한 만료 규칙에 대해 해당 폴더를 검사하고 필요에 따라 메일을 정리합니다. 메일함 디렉토리에 store.exp 파일이 있고 store.cleanupage 구성 매개 변수에 지정된 시간보다 오랫동안 정리/만료된 메일이 있을 경우 제거 기능은 메일 해시 디렉토리의 모든 메일 파일을 영구적으로 제거하고 store.exp 파일에서 UID 레코드를 제거합니다.

또한 msg_svr_base /config/의 expire_exclude_list라는 파일에 한 행에 하나씩 사용자 아이디를 추가하여 지정된 사용자를 만료 규칙에서 제외할 수 있습니다.

자동 메일 제거 기능 배포

자동 메일 제거는 다음 세 단계로 구성됩니다.

  1. 자동 메일 제거 정책을 정의합니다. 자동으로 제거할 메일은 무엇입니까? 메일이 자동으로 제거될 사용자, 폴더, 도메인 및 분할 영역은 무엇입니까? 제거 기준을 정의하는 크기, 메일 기간 및 헤더는 무엇입니까? 제거할 메일 범위를 정의합니다. 자동 메일 제거 정책 정의를 참조하십시오.

  2. 이 정책을 구현하기 위한 imexpire 규칙을 지정합니다. 자동 메일 제거 정책을 구현하는 규칙 설정 을 참조하십시오.

  3. imexpire 일정을 지정합니다. 자동 메일 제거 및 로깅 수준 예약을 참조하십시오.

자동 메일 제거 정책 정의

제거 기준을 지정하여 자동 메일 제거 정책을 정의합니다. imexpire에서는 다음 기준을 제거에 사용할 수 있습니다.

메일 기간. X일보다 오래된 메일을 자동으로 제거합니다((속성: messagedays).

메일 수. X개의 메일을 초과하는 폴더의 메일을 자동으로 제거합니다(속성: messagecount).

크기를 초과하는 메일의 기간.Y일의 유예 기간 후에 X바이트를 초과한 메일을 자동으로 제거합니다(속성: messagesize messagesizedays).

조회 삭제됨 메일 플래그. 조회 또는 삭제됨 플래그가 설정된 메일을 자동으로 제거합니다. 이러한 기준은 “and” 또는 “or”로 설정될 수 있습니다. or로 설정된 경우 메일의 조회/삭제 플래그는 다른 기준에 상관 없이 메일을 자동으로 삭제합니다. and로 설정된 경우 지정된 다른 모든 기준을 충족하면서 메일의 조회/삭제 플래그를 설정해야 합니다((속성: seendeleted).

메일의 헤더 필드. 메일 제거 기준으로 사용할 헤더와 문자열을 지정할 수 있습니다(예: “Subject: Work from Home!”라는 헤더를 가진 모든 메일 제거).

메일 폴더. 메일을 제거할 폴더를 지정할 수 있습니다(속성: folderpattern).


주 –

imexpire에서는 메일을 읽은 후로 경과한 시간에 따라 메일을 삭제하거나 보존하도록 허용하지 않습니다. 예를 들어, 200일 동안 읽지 않은 메일을 제거하도록 지정할 수 없습니다.


자동 메일 제거 정책의 예

Example 1: 1,000개의 메일을 초과하는 폴더에서 365일이 지난 모든 메일을 제거합니다.

예 2: siroe.com 도메인에서 180일이 지난 메일을 제거합니다.

예 3: 삭제됨으로 표시된 모든 메일을 제거합니다.

예 4: 조회 표시가 있고 30일이 지났으며 100KB보다 크고 폴더의 메일 수가 1,000개를 초과하며 X-spam 헤더가 있는 메일을 sesta.com에서 제거합니다.

자동 메일 제거 정책을 구현하는 규칙 설정

이전 절에서 정의한 자동 메일 제거 정책을 구현하려면 imexpire 규칙을 설정해야 합니다. store.expirerule 파일에 규칙을 포함하면 규칙이 설정됩니다. 다음은 두 개의 전역 store.expirerule 규칙을 보여 주는 예입니다.


Rule1.regexp: 1
Rule1.folderpattern: user/.*/trash
Rule1.messagedays: 2
Rule2:regexp: 1
Rule2.folderpattern: user/.*
Rule2.messagedays: 14

            

이 예에서 Rule 1은 휴지통 폴더의 모든 메일이 2일 후에 제거되도록 지정합니다. Rule 2는 메일 저장소의 모든 메일이 14일 후에 제거되도록 지정합니다.

이 절은 다음과 같은 하위 절로 구성되어 있습니다.

만료 규칙 지침

이 절에서는 store.expirerule 파일 규칙에 대한 지침을 설정합니다.


주 –

이전의 Messaging Server 릴리스에서는 configutil 매개 변수 store.expirerule.attribute를 사용하여 만료 규칙을 설정할 수 있었습니다(Sun Java System Messaging Server 6 2005Q4 Administration Referenceconfigutil Parameters 참조).이는 여전히 유효하지만 헤더 제약 조건을 사용하는 만료 규칙(예: 특정 제목 행을 가진 메일을 만료하는 것)은 지원되지 않습니다. 어떤 경우에서든 store.expirerule을 사용하여 모든 만료 규칙을 지정하는 것이 가장 좋습니다.


표 18–8 imexpire 속성

속성 

설명(속성 값) 

exclusive

해당 규칙이 배타적인지 여부를 지정합니다. exclusive로 지정된 경우 해당 규칙만 지정된 메일함에 적용되며 다른 모든 규칙은 무시됩니다. 둘 이상의 배타적인 규칙이 존재할 경우 마지막으로 로드된 규칙이 사용됩니다. 예를 들어, 전역 및 로컬 배타적인 규칙을 지정할 경우 로컬 규칙이 사용됩니다. 둘 이상의 배타적인 전역 규칙이 있을 경우 configutil에서 나열한 마지막 전역 규칙이 사용됩니다. (1/0)

folderpattern

해당 규칙의 영향을 받는 폴더를 지정합니다. 형식은 store_root/partition/*/ 디렉토리를 나타내는 user/로 시작해야 합니다. 그림 18–4표 18–9를 참조하십시오(POSIX 정규 표현식).

messagecount

폴더의 최대 메일 수입니다. 추가 메일이 전달되면 가장 오래된 메일이 정리됩니다. (정수) 

foldersize

추가 메일이 전달되었을 때 가장 오래된 메일이 정리되기 전까지의 최대 폴더 크기입니다. (바이트 단위 정수) 

messagedays

메일이 정리되기 전까지의 메일 기간(일)입니다. (정수) 

messagesize

메일이 정리되는 것으로 표시되기 전까지의 메일의 최대 크기(바이트)입니다. (정수) 

messagesizedays

유예 기간입니다. 크기를 초과한 메일이 폴더에 남아 있어야 하는 일 수입니다. (정수) 

message header field

제거할 메일을 표시하는 헤더 필드와 문자열을 지정합니다. 값은 대소문자를 구분하지 않으며 정규 표현식은 인식되지 않습니다. 예: Rule1.Subject: Get Rich Now!

ExpiresExpiry-Date 헤더의 경우 imexpire는 이러한 헤더 필드로 지정한 날짜 값이 messagedays 속성보다 오래 되었으면 메일을 제거합니다. 여러 개의 만료 헤더 필드를 지정한 경우에는 가장 이른 만료 날짜가 사용됩니다. (문자열)

regexp

규칙 작성에 UNIX 정규 표현식을 사용 가능하게 합니다. (1 또는 0) 지정하지 않으면 IMAP 표현식이 사용됩니다. 

seen

seen은 사용자가 메일을 열었을 때 시스템에 의해 설정되는 메일 상태 플래그입니다. seen 속성이 and로 설정된 경우 메일을 보는 것 외에도 다른 기준을 충족해야 규칙이 적용됩니다. seen 속성이 or로 설정된 경우 메일을 보았거나 또는 다른 기준을 충족하면 규칙이 적용됩니다. (and/or)

deleted

deleted는 사용자가 메일을 삭제했을 때 시스템에 의해 설정되는 메일 상태 플래그입니다. deleted 속성이 and로 설정된 경우 메일을 삭제한 것 외에도 다른 기준을 충족해야 규칙이 적용됩니다. deleted 속성이 or로 설정된 경우 메일을 삭제했거나 또는 다른 기준을 충족하면 규칙이 적용됩니다. (and/or)

텍스트 형식으로 imexpire 규칙 설정

자동 메일 제거 규칙은 store.expirerule 파일에서 규칙을 지정하여 설정합니다. store.expirerule 파일에는 한 행에 하나씩 만료 기준이 있습니다. 전역 규칙 구성 파일(msg_svr_base/data/store/store.expirerule)의 만료 기준의 형식은 다음과 같습니다.

rule_name.attribute: value

사용자 또는 메일함 규칙 구성 파일의 만료 규칙 형식은 다음과 같습니다.

attribute: value

예 18–1에서는 msg_svr_base/config/store.expirerule의 전역 만료 규칙 집합을 보여 줍니다.

Rule 1은 다음과 같이 전역 만료 정책(즉, 모든 메일에 적용되는 정책)을 설정합니다.

Rule 2는 호스트된 도메인 siroe.com에서 사용자에 대한 자동 메일 제거 정책을 설정합니다. 이 규칙은 메일함 크기를 1MB로 제한하고 삭제된 메일을 제거하며 14일이 지난 메일을 제거합니다.

Rule 3은 f.dostoevski 사용자의 inbox 폴더에 있는 메일에 대한 자동 메일 제거 정책을 설정합니다. 이 규칙은 제목 행에 "On-line Casino" 표현이 있는 메일을 제거합니다.


예 18–1 imexpire 규칙 예


Rule1.regexp: 1
Rule1.folderpattern: user/.*
Rule1.messagesize: 100000
Rule1.messagesizedays: 3
Rule1.deleted: or
Rule1.Subject: Vigara Now!
Rule1.Subject: XXX Porn!
Rule1.messagecount: 1000
Rule1.messagedays: 365
Rule2.regexp: 1
Rule2.folderpattern: user/.*@siroe.com/.*Rule2.exclusive: 1
Rule2.deleted: or
Rule2.messagedays: 14
Rule2.messagecount: 1000
Rule3.folderpattern: user/f.dostoevski/inboxRule3.Subject: *On-line Casino*
                  

imexpire 폴더 패턴 설정

POSIX 정규 표현식을 사용하여 imexpire 속성 regex를 1로 설정함으로써 폴더 패턴을 지정할 수있습니다. 지정하지 않으면 IMAP 표현식이 사용됩니다. user/로 시작되고 뒤에 패턴이 나오는 형식이어야 합니다. 표 18–9에서는 여러 폴더에 대한 폴더 패턴을 보여 줍니다.)

표 18–9 정규 표현식을 사용한 imexpire 폴더 패턴

폴더 패턴 

범위 

user/userid/.*

userid의 모든 폴더에 있는 모든 메일에 적용됩니다.

user/userid/Sent

Sent 폴더에 있는 userid의 메일에 규칙을 적용합니다.

user/.*

메일 저장소 전체에 규칙을 적용합니다. 

user/.*/trash

모든 사용자의 trash 폴더에 규칙을 적용합니다.

user/.*@siroe.com/.*

호스트된 도메인 siroe.com의 폴더에 규칙을 적용합니다. 

user/[^@]*/.*

기본 도메인에 있는 폴더에 규칙을 적용합니다. 

Procedure콘솔을 사용하여 전역 자동 메일 제거 규칙을 설정하는 방법

콘솔을 사용하여 전역 만료 규칙을 설정할 수도 있지만 store.expirerule을 사용하는 방법이 선호됩니다. 콘솔이나 configutil을 사용하여 너무 많은 규칙을 만들면 성능 문제가 발생할 수 있습니다.

단계
  1. 다음과 같이 자동 메일 제거 GUI를 엽니다.

    주 콘솔 > 서버 그룹 > Messaging Server(열기) > Messaging Server 콘솔 > 구성 탭 > 메일 저장소 > 만료/제거 > 추가

    그림 18–4에는 대략적인 GUI 그림이 나와 있습니다.

    그림 18–4 자동 메일 제거(만료/제거) GUI—대략적인 그림

    이 그림은 자동 메일 제거 GUI의 대략적인 그림을 보여 줍니다.

  2. 새 규칙의 이름을 입력합니다.

  3. 메일이 자동으로 제거될 폴더를 입력합니다.

    위의 imexpire 폴더 패턴 설정을 참조하십시오.

  4. 이 규칙이 지정된 기준과 일치하는 폴더에 대한 배타적인 규칙일 경우 배타적 상자를 선택합니다.

    이 상자를 선택한 경우 지정된 패턴과 일치하는 다른 모든 규칙보다 이 규칙이 우선합니다. 배타적 확인란에 대한 자세한 내용은 표 18–8을 참조하십시오.

  5. 폴더 크기에 기반한 규칙을 만들려면 다음을 수행합니다.

    • 폴더 크기 제약 조건 확인란을 선택합니다. 메일 수 필드에 가장 오래된 메일이 제거되기 전에 폴더에 남아 있는 최대 메일 수를 지정합니다. 폴더 크기 필드에서 가장 오래된 메일이 제거되기 전의 최대 폴더 크기를 바이트로 지정합니다.

  6. 메일 기간에 기반한 규칙을 만들려면 메일 기간 제약 조건 확인란을 선택합니다.

    일 수 필드에 메일이 폴더에 남아 있어야 하는 기간(일)을 지정합니다.

  7. 메일 크기를 기반으로 규칙을 만들려면 다음을 수행합니다.

    • 메일 크기 제한 제약 조건 확인란을 선택합니다. 메일 크기 제한 필드에 폴더에 허용되는 최대 메일 크기를 입력합니다. "유예 기간" 필드에 크기를 초과한 메일이 제거되기 전에 폴더에 남아 있는 기간을 입력합니다.

  8. 조회 또는 삭제됨 메일 플래그가 설정되었는지에 기초하여 규칙을 만들려면 다음을 수행합니다.

    • 메일 플래그 제약 조건 확인란을 선택합니다.

    • 조회: 필드의 경우 메일 조회 다른 기준을 충족해야 규칙이 적용되도록 지정하려면 "and"를 선택합니다. 메일 조회 또는 다른 기준을 충족할 경우 규칙이 적용되도록 지정하려면 "or"를 선택합니다.

    • 삭제됨: 필드의 경우 메일 삭제 다른 기준을 충족해야 규칙이 적용되도록 지정하려면 "and"를 선택합니다. 메일 삭제 또는 다른 기준을 충족할 경우 규칙이 적용되도록 지정하려면 "or"를 선택합니다.

  9. 헤더 필드와 그 값에 기초하여 규칙을 만들려면 다음을 수행합니다.

    • 헤더 제약 조건 확인란을 선택합니다.

    • 쉼표로 구분된 헤더 및 값 목록을 다음 형식으로 입력합니다.

      header1: value1, header2 : value2

      예: Subject: Work at Home!,From: virus@sesta.com

      ExpiresExpiry-Date 헤더의 경우 시스템은 해당 날짜 값이 메일 기간 제약 조건보다 오래된 경우 메일을 제거합니다. 여러 개의 만료 헤더 필드를 지정한 경우에는 가장 이른 만료 날짜가 사용됩니다. (문자열)

  10. 확인을 눌러 새 규칙을 자동 메일 제거 목록에 추가합니다.

자동 메일 제거 및 로깅 수준 예약

자동 메일 제거는 imsched 예약 데몬에 의해 활성화됩니다. 기본적으로 imsched는 매일 23시에 imexpire를 호출하여 메일을 정리 및 제거합니다. 표 18–10에 설명된 configutil 매개 변수 local.schedule.expire, local.schedule.purgestore.cleanupage를 설정하여 이 일정을 사용자 정의할 수 있습니다.

메일 저장소가 큰 경우 만료와 제거를 완료하는 데 시간이 걸릴 수 있으므로 이러한 프로세스를 실행하는 빈도를 실험하여 결정하는 것이 필요할 수 있습니다. 예를 들어, 만료/제거 주기가 10시간일 경우 만료 및 제거를 하루에 한 번씩 실행하도록 기본 일정을 세우지는 않을 것입니다. local.schedule.purge를 사용하여 별개의 제거 일정을 지정하는 방법으로 만료 및 제거를 예약합니다. local.schedule.purge를 설정하지 않을 경우 imexpire는 만료 후에 제거를 수행합니다.

표 18–10 만료 및 제거 configutil 로그 및 예약 매개 변수

매개 변수 

설명 

local.schedule.expire

imexpire를 실행하는 간격입니다. 다음 UNIX crontab 형식을 사용합니다. minute hour day-of-month month-of-year day-of-week

값은 공백이나 탭으로 구분하며 각각 0-59, 0-23, 1-31, 1-12 또는 0-6(0=일요일)의 값을 사용할 수 있습니다. 각 시간 필드에는 별표(유효한 모든 값), 쉼표로 구분된 값 목록 또는 하이픈으로 구분된 두 값의 범위를 사용할 수 있습니다. 날짜는 일과 요일 모두를 사용하여 지정할 수 있지만 둘 다 일치하는 경우가 매우 드물기 때문에 일반적이지 않습니다. 일과 요일을 모두 지정한 경우에는 둘 다 필요합니다. 예를 들어, 17일과 화요일을 설정하면 두 값이 모두 true가 되어야 합니다.  

간격 예:

1) 오전 12:30 , 8:30 및 오후 4:30에 imexpire를 실행합니다. 30 0,8,16 * * * /opt/SUNWmsgsr/lib/imexpire

2) 주중 아침 3:15에 imexpire를 실행합니다. 15 3 * * 1-5 /opt/SUNWmsgsr/lib/imexpire

3) 월요일에만 imexpire를 실행합니다. 0 0 * * 1 /opt/SUNWmsgsr/lib/imexpire

기본값: 0 23 * * * /opt/SUNWmsgsr/lib/imexpire

local.schedule.purge

purge를 실행하는 간격입니다. 다음 UNIX crontab 형식을 사용합니다. minute hour day-of-month month-of-year day-of-week.

기본값: 0 0,4,8,12,16,20 * * * /opt/SUNWmsgsr/lib/purge -num=5(4시간마다) 

store.cleanupage

만료 또는 정리된 메일이 purge에 의해 영구적으로 제거된 전까지의 기간(시간)입니다.

기본값: 없음 

local.store.expire.loglevel

다음과 같이 로그 수준을 지정합니다. 

1 = 전체 만료 세션의 요약을 기록합니다.  

2 = 만료된 메일함별로 하나씩 메일을 기록합니다.  

3 = 만료된 메일별로 하나씩 메일을 기록합니다. 

기본값: 1 

콘솔을 사용하여 imexpire 예약

다음과 같이 자동 메일 제거 GUI를 엽니다.

주 콘솔 > 서버 그룹 > Messaging Server(열기) > Messaging Server 콘솔 > 구성 탭 > 메일 저장소 > 만료/제거

이 콘솔 페이지의 위쪽에는 만료 규칙이, 아래쪽에는 만료 및 제거 일정이 나열됩니다. 만료 및 제거를 예약하려면 만료/제거 일정의 풀다운 메뉴를 사용하여 만료 및 제거의 월, 일, 요일(0=일요일), 시간 및 분을 설정합니다.


주 –

일 값은 일과 요일을 모두 사용하여 설정할 수 있습니다. 일과 요일을 모두 설정하면 둘 다 적용됩니다. 예를 들어, 수요일과 17일을 설정하면 제거/만료는 각 달의 17일 중에서 수요일에 해당하는 날짜에만 발생합니다.


imexpire 로깅 수준 설정

imexpire는 완료 시에 기본 로그 파일에 대한 요약을 기록합니다. 명령줄에서 만료가 호출될 경우 -v(verbose) 및 -d(debug) 옵션을 사용하여 자세한 상태/디버그 메시지를 stderr에 기록하도록 imexpire에 지시할 수 있습니다. imexpireimsched에 의해 호출될 경우 configutil 매개 변수 local.store.expire.loglevel을 여러 다른 로깅 수준에 대해 1, 2 또는 3으로 설정할 수 있습니다. Loglevel 1은 기본값으로 전체 만료 세션의 요약을 기록합니다. Loglevel 2는 만료된 메일함별로 하나씩의 메일을 기록합니다. 마지막으로 Loglevel 3은 만료된 메일별로 하나씩의 메일을 기록합니다.

자동 메일 제거에서 지정된 사용자 제외

msg_svr_base/config/의 expire_exclude_list라는 파일에 한 행에 하나씩 사용자 아이디를 추가하여 지정된 사용자를 만료 규칙에서 제외합니다.