자동 메일 제거는 다음 세 단계로 구성됩니다.
자동 메일 제거 정책을 정의합니다. 자동으로 제거할 메일은 무엇입니까? 메일이 자동으로 제거될 사용자, 폴더, 도메인 및 분할 영역은 무엇입니까? 제거 기준을 정의하는 크기, 메일 기간 및 헤더는 무엇입니까? 제거할 메일 범위를 정의합니다. 자동 메일 제거 정책 정의를 참조하십시오.
이 정책을 구현하기 위한 imexpire 규칙을 지정합니다. 자동 메일 제거 정책을 구현하는 규칙 설정 을 참조하십시오.
imexpire 일정을 지정합니다. 자동 메일 제거 및 로깅 수준 예약을 참조하십시오.
제거 기준을 지정하여 자동 메일 제거 정책을 정의합니다. imexpire에서는 다음 기준을 제거에 사용할 수 있습니다.
메일 기간. X일보다 오래된 메일을 자동으로 제거합니다((속성: messagedays).
메일 수. X개의 메일을 초과하는 폴더의 메일을 자동으로 제거합니다(속성: messagecount).
크기를 초과하는 메일의 기간.Y일의 유예 기간 후에 X바이트를 초과한 메일을 자동으로 제거합니다(속성: messagesize 및 messagesizedays).
조회 및 삭제됨 메일 플래그. 조회 또는 삭제됨 플래그가 설정된 메일을 자동으로 제거합니다. 이러한 기준은 “and” 또는 “or”로 설정될 수 있습니다. or로 설정된 경우 메일의 조회/삭제 플래그는 다른 기준에 상관 없이 메일을 자동으로 삭제합니다. and로 설정된 경우 지정된 다른 모든 기준을 충족하면서 메일의 조회/삭제 플래그를 설정해야 합니다((속성: seen 및 deleted).
메일의 헤더 필드. 메일 제거 기준으로 사용할 헤더와 문자열을 지정할 수 있습니다(예: “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 Reference의 configutil Parameters 참조).이는 여전히 유효하지만 헤더 제약 조건을 사용하는 만료 규칙(예: 특정 제목 행을 가진 메일을 만료하는 것)은 지원되지 않습니다. 어떤 경우에서든 store.expirerule을 사용하여 모든 만료 규칙을 지정하는 것이 가장 좋습니다.
규칙은 store.expirerule이라는 파일에 지정됩니다.
동일한 규칙을 사용하여 여러 만료 기준을 지정할 수 있습니다(위의 예를 참조).
규칙은 전체 메일 저장소(전역 규칙), 메일 저장소 분할 영역, 사용자 또는 폴더에 적용할 수 있습니다.
전역 규칙은 msg_svr_base/config/store.expirerule에 저장됩니다.
각 전역 규칙을 모든 메일함에 대해 검사하므로 지정한 전역 규칙의 수에 따라 처리 오버헤드가 발생할 수 있습니다. 이런 이유로 인해 전역 규칙 파일에서 분할 영역, 메일함 또는 사용자 규칙을 지정해서는 안 됩니다. 일반적으로 필요한 수보다 많은 만료 규칙을 이 파일에 포함시키지 않도록 해야 합니다.
분할 영역 규칙은 store_root/partition/partition_name/store.expirerule 에 저장됩니다.
사용자 규칙은 store_root/partition/partition_name/userid/store.expirerule에서 지정하거나 folderpattern 규칙이 user/userid /.*가 되도록 지정하여 만들 수 있습니다.
폴더 규칙은 store_root/partition/partition_name/userid/folder/store.expirerule에서 지정하거나 folderpattern 규칙이 user/userid/folder가 되도록 지정하여 만들 수 있습니다.
rule_name을 사용하는 여러 비전역 규칙(사용자, 폴더, 분할 영역)은 Messaging Server 6.2p4 이후 릴리스에서만 구현되었습니다.
여러 만료 규칙을 메일함에 동시에 적용할 수 있습니다. 메일함에 대한 만료 규칙은 전역 규칙 및 로컬 규칙으로 구성됩니다. 로컬 규칙은 같은 디렉토리와 해당하는 모든 하위 폴더의 메일함에 적용됩니다.
imexpire는 이 메일함에 대해 지정된 배타적 규칙이 없을 경우 메일함에 적용되는 모든 만료 규칙을 통합합니다(표 18–8 참조). 결과 규칙 집합은 적용 가능한 모든 규칙을 기반으로 하는 가장 제한적인 만료 정책을 나타냅니다. 예를 들어, 메일이 만료되는 최대 메일 기간을 규칙 X가 10일로 지정하고 규칙 Y가 5일로 지정할 경우 통합 결과는 5일이 됩니다.
속성 |
설명(속성 값) |
---|---|
해당 규칙이 배타적인지 여부를 지정합니다. exclusive로 지정된 경우 해당 규칙만 지정된 메일함에 적용되며 다른 모든 규칙은 무시됩니다. 둘 이상의 배타적인 규칙이 존재할 경우 마지막으로 로드된 규칙이 사용됩니다. 예를 들어, 전역 및 로컬 배타적인 규칙을 지정할 경우 로컬 규칙이 사용됩니다. 둘 이상의 배타적인 전역 규칙이 있을 경우 configutil에서 나열한 마지막 전역 규칙이 사용됩니다. (1/0) |
|
해당 규칙의 영향을 받는 폴더를 지정합니다. 형식은 store_root/partition/*/ 디렉토리를 나타내는 user/로 시작해야 합니다. 그림 18–4 및 표 18–9를 참조하십시오(POSIX 정규 표현식). |
|
폴더의 최대 메일 수입니다. 추가 메일이 전달되면 가장 오래된 메일이 정리됩니다. (정수) |
|
추가 메일이 전달되었을 때 가장 오래된 메일이 정리되기 전까지의 최대 폴더 크기입니다. (바이트 단위 정수) |
|
메일이 정리되기 전까지의 메일 기간(일)입니다. (정수) |
|
메일이 정리되는 것으로 표시되기 전까지의 메일의 최대 크기(바이트)입니다. (정수) |
|
유예 기간입니다. 크기를 초과한 메일이 폴더에 남아 있어야 하는 일 수입니다. (정수) |
|
message header field |
제거할 메일을 표시하는 헤더 필드와 문자열을 지정합니다. 값은 대소문자를 구분하지 않으며 정규 표현식은 인식되지 않습니다. 예: Rule1.Subject: Get Rich Now! Expires 및 Expiry-Date 헤더의 경우 imexpire는 이러한 헤더 필드로 지정한 날짜 값이 messagedays 속성보다 오래 되었으면 메일을 제거합니다. 여러 개의 만료 헤더 필드를 지정한 경우에는 가장 이른 만료 날짜가 사용됩니다. (문자열) |
regexp |
규칙 작성에 UNIX 정규 표현식을 사용 가능하게 합니다. (1 또는 0) 지정하지 않으면 IMAP 표현식이 사용됩니다. |
seen은 사용자가 메일을 열었을 때 시스템에 의해 설정되는 메일 상태 플래그입니다. seen 속성이 and로 설정된 경우 메일을 보는 것 외에도 다른 기준을 충족해야 규칙이 적용됩니다. seen 속성이 or로 설정된 경우 메일을 보았거나 또는 다른 기준을 충족하면 규칙이 적용됩니다. (and/or) |
|
deleted는 사용자가 메일을 삭제했을 때 시스템에 의해 설정되는 메일 상태 플래그입니다. deleted 속성이 and로 설정된 경우 메일을 삭제한 것 외에도 다른 기준을 충족해야 규칙이 적용됩니다. deleted 속성이 or로 설정된 경우 메일을 삭제했거나 또는 다른 기준을 충족하면 규칙이 적용됩니다. (and/or) |
자동 메일 제거 규칙은 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은 다음과 같이 전역 만료 정책(즉, 모든 메일에 적용되는 정책)을 설정합니다.
규칙 작성에 UNIX 정규 표현식을 사용 가능하게 합니다.
3일이 지난 100,000바이트를 초과하는 메일을 제거합니다.
사용자가 삭제한 메일을 제거합니다.
제목 헤더에 “Vigara Now!”또는 “XXX Porn!”문자열이 있는 메일을 제거합니다.
모든 폴더의 메일 수를 1,000개로 제한합니다. 메일이 1,000개를 넘으면 시스템은 폴더에서 가장 오래된 메일을 제거하여 합계를 1,000개로 유지합니다.
365일이 지난 모든 메일을 제거합니다.
Rule 2는 호스트된 도메인 siroe.com에서 사용자에 대한 자동 메일 제거 정책을 설정합니다. 이 규칙은 메일함 크기를 1MB로 제한하고 삭제된 메일을 제거하며 14일이 지난 메일을 제거합니다.
Rule 3은 f.dostoevski 사용자의 inbox 폴더에 있는 메일에 대한 자동 메일 제거 정책을 설정합니다. 이 규칙은 제목 행에 "On-line Casino" 표현이 있는 메일을 제거합니다.
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* |
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/[^@]*/.* |
기본 도메인에 있는 폴더에 규칙을 적용합니다. |
콘솔을 사용하여 전역 만료 규칙을 설정할 수도 있지만 store.expirerule을 사용하는 방법이 선호됩니다. 콘솔이나 configutil을 사용하여 너무 많은 규칙을 만들면 성능 문제가 발생할 수 있습니다.
주 콘솔 > 서버 그룹 > Messaging Server(열기) > Messaging Server 콘솔 > 구성 탭 > 메일 저장소 > 만료/제거 > 추가
그림 18–4에는 대략적인 GUI 그림이 나와 있습니다.
새 규칙의 이름을 입력합니다.
메일이 자동으로 제거될 폴더를 입력합니다.
위의 imexpire 폴더 패턴 설정을 참조하십시오.
이 규칙이 지정된 기준과 일치하는 폴더에 대한 배타적인 규칙일 경우 배타적 상자를 선택합니다.
이 상자를 선택한 경우 지정된 패턴과 일치하는 다른 모든 규칙보다 이 규칙이 우선합니다. 배타적 확인란에 대한 자세한 내용은 표 18–8을 참조하십시오.
폴더 크기에 기반한 규칙을 만들려면 다음을 수행합니다.
폴더 크기 제약 조건 확인란을 선택합니다. 메일 수 필드에 가장 오래된 메일이 제거되기 전에 폴더에 남아 있는 최대 메일 수를 지정합니다. 폴더 크기 필드에서 가장 오래된 메일이 제거되기 전의 최대 폴더 크기를 바이트로 지정합니다.
메일 기간에 기반한 규칙을 만들려면 메일 기간 제약 조건 확인란을 선택합니다.
일 수 필드에 메일이 폴더에 남아 있어야 하는 기간(일)을 지정합니다.
메일 크기를 기반으로 규칙을 만들려면 다음을 수행합니다.
메일 크기 제한 제약 조건 확인란을 선택합니다. 메일 크기 제한 필드에 폴더에 허용되는 최대 메일 크기를 입력합니다. "유예 기간" 필드에 크기를 초과한 메일이 제거되기 전에 폴더에 남아 있는 기간을 입력합니다.
조회 또는 삭제됨 메일 플래그가 설정되었는지에 기초하여 규칙을 만들려면 다음을 수행합니다.
메일 플래그 제약 조건 확인란을 선택합니다.
조회: 필드의 경우 메일 조회 및 다른 기준을 충족해야 규칙이 적용되도록 지정하려면 "and"를 선택합니다. 메일 조회 또는 다른 기준을 충족할 경우 규칙이 적용되도록 지정하려면 "or"를 선택합니다.
삭제됨: 필드의 경우 메일 삭제 및 다른 기준을 충족해야 규칙이 적용되도록 지정하려면 "and"를 선택합니다. 메일 삭제 또는 다른 기준을 충족할 경우 규칙이 적용되도록 지정하려면 "or"를 선택합니다.
헤더 필드와 그 값에 기초하여 규칙을 만들려면 다음을 수행합니다.
헤더 제약 조건 확인란을 선택합니다.
쉼표로 구분된 헤더 및 값 목록을 다음 형식으로 입력합니다.
header1: value1, header2 : value2
예: Subject: Work at Home!,From: virus@sesta.com
Expires와 Expiry-Date 헤더의 경우 시스템은 해당 날짜 값이 메일 기간 제약 조건보다 오래된 경우 메일을 제거합니다. 여러 개의 만료 헤더 필드를 지정한 경우에는 가장 이른 만료 날짜가 사용됩니다. (문자열)
확인을 눌러 새 규칙을 자동 메일 제거 목록에 추가합니다.
자동 메일 제거는 imsched 예약 데몬에 의해 활성화됩니다. 기본적으로 imsched는 매일 23시에 imexpire를 호출하여 메일을 정리 및 제거합니다. 표 18–10에 설명된 configutil 매개 변수 local.schedule.expire, local.schedule.purge 및 store.cleanupage를 설정하여 이 일정을 사용자 정의할 수 있습니다.
메일 저장소가 큰 경우 만료와 제거를 완료하는 데 시간이 걸릴 수 있으므로 이러한 프로세스를 실행하는 빈도를 실험하여 결정하는 것이 필요할 수 있습니다. 예를 들어, 만료/제거 주기가 10시간일 경우 만료 및 제거를 하루에 한 번씩 실행하도록 기본 일정을 세우지는 않을 것입니다. local.schedule.purge를 사용하여 별개의 제거 일정을 지정하는 방법으로 만료 및 제거를 예약합니다. local.schedule.purge를 설정하지 않을 경우 imexpire는 만료 후에 제거를 수행합니다.
표 18–10 만료 및 제거 configutil 로그 및 예약 매개 변수
매개 변수 |
설명 |
---|---|
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 |
|
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시간마다) |
|
만료 또는 정리된 메일이 purge에 의해 영구적으로 제거된 전까지의 기간(시간)입니다. 기본값: 없음 |
|
다음과 같이 로그 수준을 지정합니다. 1 = 전체 만료 세션의 요약을 기록합니다. 2 = 만료된 메일함별로 하나씩 메일을 기록합니다. 3 = 만료된 메일별로 하나씩 메일을 기록합니다. 기본값: 1 |
주 콘솔 > 서버 그룹 > Messaging Server(열기) > Messaging Server 콘솔 > 구성 탭 > 메일 저장소 > 만료/제거
이 콘솔 페이지의 위쪽에는 만료 규칙이, 아래쪽에는 만료 및 제거 일정이 나열됩니다. 만료 및 제거를 예약하려면 만료/제거 일정의 풀다운 메뉴를 사용하여 만료 및 제거의 월, 일, 요일(0=일요일), 시간 및 분을 설정합니다.
일 값은 일과 요일을 모두 사용하여 설정할 수 있습니다. 일과 요일을 모두 설정하면 둘 다 적용됩니다. 예를 들어, 수요일과 17일을 설정하면 제거/만료는 각 달의 17일 중에서 수요일에 해당하는 날짜에만 발생합니다.
imexpire는 완료 시에 기본 로그 파일에 대한 요약을 기록합니다. 명령줄에서 만료가 호출될 경우 -v(verbose) 및 -d(debug) 옵션을 사용하여 자세한 상태/디버그 메시지를 stderr에 기록하도록 imexpire에 지시할 수 있습니다. imexpire가 imsched에 의해 호출될 경우 configutil 매개 변수 local.store.expire.loglevel을 여러 다른 로깅 수준에 대해 1, 2 또는 3으로 설정할 수 있습니다. Loglevel 1은 기본값으로 전체 만료 세션의 요약을 기록합니다. Loglevel 2는 만료된 메일함별로 하나씩의 메일을 기록합니다. 마지막으로 Loglevel 3은 만료된 메일별로 하나씩의 메일을 기록합니다.
msg_svr_base/config/의 expire_exclude_list라는 파일에 한 행에 하나씩 사용자 아이디를 추가하여 지정된 사용자를 만료 규칙에서 제외합니다.