Sun Java System Messaging Server 6.3 관리 설명서

20.7 메시지 유형 관리

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

20.7.1 메시지 유형 개요

통합 메시징 응용 프로그램은 텍스트 메시지, 음성 메일, 팩스 메일, 이미지 데이터 및 기타 데이터 형식을 포함하여 여러 유형의 메시지를 받고, 보내고, 저장하고, 관리할 수 있습니다. 메시지 저장소를 사용하면 서로 다른 메시지 유형을 63개까지 정의할 수 있습니다.

메시지를 유형별로 조작하는 방법 중 하나는 메시지를 개별 폴더에 유형별로 구성하는 것입니다.

메시지 유형 기능을 사용할 수 있기 때문에 서로 다른 여러 메시지 유형을 개별 메일함 폴더에서 유지 관리할 필요가 없습니다. 메시지 유형을 구성하고 나면 저장 위치에 관계 없이 메시지 저장소에서 확인할 수 있습니다. 따라서 같은 폴더에 서로 다른 메시지 유형을 저장할 수 있습니다. 또한 다음 작업을 수행할 수 있습니다.

20.7.1.1 메시지 유형 구성 계획

통합 메시징 응용 프로그램에서 이질적인 형식의 데이터에는 Messaging Server가 데이터를 저장 및 관리할 수 있도록 표준 인터넷 메시지 헤더가 지정됩니다. 예를 들어 최종 사용자의 전화로 음성 메일을 전송하면 전화 프런트엔드 시스템이 받는 음성 메일에 메시지 헤더를 추가하여 메시지 저장소로 전달합니다.

서로 다른 여러 유형의 메시지를 인식하고 관리하려면 통합 메시징 시스템의 모든 구성 요소에서 같은 메시지 유형 정의와 헤더 필드를 사용하여 메시지를 식별해야 합니다.

메시지 유형을 지원하도록 메시지 저장소를 구성하려면 먼저 다음을 수행해야 합니다.

예를 들어, 응용 프로그램에 전화 메시지가 포함된 경우 이 메시지 유형을 "multipart/voice-message"로 정의하고 내용 유형 헤더 필드를 사용하여 메시지 유형을 확인할 수 있습니다.

그런 다음 메시지 저장소로 전달되는 각 전화 메시지에 다음 헤더 정보를 추가하도록 전화 프런트엔드 시스템을 구성합니다.

Content-Type: multipart/voice-message

다음으로는 뒤의 절에 있는 설명에 따라 multipart/voice-message 메시지 유형을 인식하도록 메시지 저장소를 구성합니다.

20.7.1.2 메시지 유형 정의 및 사용

multipart/voice-message와 같은 고유한 정의를 지정하여 메시지 유형을 정의합니다. 기본적으로 메시지 저장소는 내용 유형 헤더 필드를 읽고 메시지 유형을 결정합니다. 원하는 경우 다른 헤더 필드를 구성하여 메시지 유형을 식별할 수 있습니다.

메시지 저장소에서는 대소문자를 무시하고 내용 유형(또는 기타 지정된) 헤더 필드를 읽습니다. 즉, 헤더의 대소문자 조합이 예상된 조합과 다른 경우에도 메시지 저장소에서 헤더 필드를 유효한 것으로 승인합니다.

메시지 저장소는 헤더 필드에 있는 메시지 유형 이름만 읽습니다. 추가 인수 또는 매개 변수는 무시합니다.

메시지 유형을 정의하려면 configutil 유틸리티를 사용하여 store.messagetype 매개 변수의 값을 설정합니다. 자세한 지침은 메시지 유형을 구성하는 방법을 참조하십시오.

메시지 유형을 구성하면 메시지 저장소에서 지정된 유형의 메시지를 식별하고 조작할 수 있습니다. 이 단계가 통합 메시징 응용 프로그램에서 메시지 유형을 관리하기 위해 필요한 첫 단계입니다.

메시지 저장소에서 제공하는 메시지 유형 기능의 장점을 모두 활용하려면 다음 작업 중 일부 또는 전부를 수행해야 합니다.

이러한 작업에 대한 요약은 다음 절을 참조하십시오.

Procedure메시지 유형을 구성하는 방법

메시지 유형을 구성하려면 configutil 유틸리티를 사용하여 메시지 유형을 정의하고 식별하는 store.messagetype 매개 변수 값을 설정합니다.

  1. store.messagetype.enable 매개 변수를 on으로 설정하여 메시지 유형을 활성화합니다.

    configutil 매개 변수를 사용하면 메시지 저장소에서 메시지 유형을 식별 및 조작할 수 있습니다. 개별 메시지 유형을 구성하려면 먼저 이 매개 변수를 설정해야 합니다.

    예를 들어, 다음 명령을 입력합니다.


    configutil -o store.messagetype.enable -v 1
  2. store.messagetype. x 매개 변수를 설정하여 메시지 유형을 정의 및 식별합니다.

    변수 x는 메시지 저장소에서 이 특정 메시지 유형을 식별합니다. 변수 x는 0보다 크고 64보다 작은 정수여야 합니다. 고유한 정수를 사용하여 반복적으로 이 매개 변수를 구성하면 메시지 유형을 63개까지 정의할 수 있습니다.

    유형을 설명하는 텍스트 문자열을 사용하여 메시지 유형의 값을 정의합니다.

    예를 들어 텍스트 메시지 유형을 정의하려면 다음 명령을 입력합니다.


    configutil -o store.messagetype.1 -v text/plain

    음성 메시지 유형을 정의하려면 다음 명령을 입력합니다.


    configutil -o store.messagetype.2 -v multipart/voice-message
  3. store.messagetype. x.flagname 매개 변수를 설정하여 메시지 유형에 플래그 이름을 지정합니다.

    이 매개 변수는 메시지 유형을 식별하는 고유한 플래그를 만듭니다. 이 유형의 메시지가 처음 메시지 저장소에 도착할 때마다 플래그가 자동으로 설정되며 제거될 때까지 메시지와 연결된 상태로 남습니다. 플래그 이름 값은 메시지 유형을 설명하는 텍스트 문자열입니다. store.messagetype. x 매개 변수로 설정한 값과 같은 필요는 없습니다.

    변수 xstore.messagetype. x 매개 변수로 정의한 메시지 유형의 정수 아이디입니다.

    예를 들어 앞의 단계에서 구성한 메시지 유형에 플래그 이름을 정의하려면 다음 명령을 입력합니다.


    configutil -o store.messagetype.1.flagname -v text
    
    configutil -o store.messagetype.2.flagname -v voice_message
  4. store.messagetype.x.quotaroot 매개 변수를 설정하여 메시지 유형의 할당량 루트 이름을 구성합니다.

    이 매개 변수를 사용하면 할당량 기능에서 이 메시지 유형의 할당량 루트를 식별 및 관리할 수 있습니다. 매개 변수 값은 이름, 즉 메시지 유형을 설명하는 텍스트 문자열입니다. store.messagetype.x 매개 변수로 설정한 값과 같을 필요는 없습니다.

    변수 xstore.messagetype.x 매개 변수로 정의한 메시지 유형의 정수 아이디입니다.

    이 매개 변수가 구성되어 있으면 지정한 메시지 유형에 적용되는 할당량을 설정할 수 있습니다. 자세한 내용은 20.7.4 메시지 유형별로 할당량 관리를 참조하십시오.

    예를 들어, 앞의 단계에서 구성한 메시지 유형에 대해 할당량 루트 사용을 활성화하려면 다음 명령을 입력합니다.


    configutil -o store.messagetype.1.quotaroot -v text
    
    configutil -o store.messagetype.2.quotaroot -v voice
  5. 메시지 유형을 식별하기 위한 대체 헤더 필드를 구성하려면 store.messagetype.header 매개 변수를 설정합니다.

    기본적으로 메시지 저장소는 내용 유형 헤더 필드를 읽고 메시지 유형을 결정합니다. store.messagetype.header 매개 변수는 메시지 유형 식별을 위해 다른 헤더 필드를 사용하려는 경우에만 구성합니다. 이 매개 변수 값은 텍스트 문자열입니다.

    예를 들어 X-Message-Type이라는 필드를 사용하려면 다음 명령을 입력합니다.


    configutil -o store.messagetype.header -v X-Message-Type

20.7.2 IMAP 명령의 메시지 유형

메시지 유형에 store.messagetype.x.flagname 매개 변수를 구성할 때, 메시지 유형을 식별하는 고유 플래그를 만듭니다. 이 플래그는 최종 사용자가 수정할 수 없습니다.

Messaging Server는 메시징 유형 플래그를 IMAP 클라이언트에 사용자 플래그로 제공합니다. 메시지 유형을 사용자 플래그에 매핑하면 메일 클라이언트에서 간단한 IMAP 명령을 사용하여 메시지 유형별로 메시지를 조작할 수 있습니다.

예를 들어, 다음 작업을 수행할 수 있습니다.

메시지 유형 사용자 플래그는 읽기 전용입니다. IMAP 명령으로 수정할 수 없습니다.

다음 예에서는 아래에 표시된 값으로 메시지 유형 configutil 매개 변수를 구성하는 경우를 가정합니다.


store.messagetype.enable = yes

store.messagetype.1 = text/plain
store.messagetype.1.flagname = text
store.messagetype.1.quotaroot = text

store.messagetype.2 = multipart/voice-message
store.messagetype.2.flagname = voice_message
store.messagetype.2.quotaroot = voice

예 20–1 메시지 유형 configutil 구성을 기반으로 한 IMAP FETCH 세션

다음 IMAP 세션에서는 현재 선택한 메일함의 메시지를 불러옵니다.


2 fetch 1:2 (flags rfc822)
* 1 FETCH (FLAGS (\Seen text) RFC822 {164}

Date: Wed, 8 July 2006 03:39:57 -0700 (PDT)
From: bob.smith@siroe.com
To: john.doe@siroe.com
Subject:  Hello
Content-Type: TEXT/plain; charset=us-ascii


* 2 FETCH (FLAGS (\Seen voice_message) RFC822 {164}

Date: Wed, 8 July 2006 04:17:22 -0700 (PDT)
From: sally.lee@siroe.com
To: john.doe@siroe.com
Subject:  Our Meeting
Content-Type: MULTIPART/voice-message; ver=2.0

2 OK COMPLETED

앞의 예에서는 두 개의 메시지를 불러오며, 하나는 텍스트 메시지이고 하나는 음성 메일입니다.

메시지 유형 플래그는 store.messagetype.*.flagname 매개 변수를 사용하여 구성한 형식으로 표시됩니다.

내용 유형 헤더 필드는 메시지 유형을 식별합니다. 메시지 유형 이름은 받는 메시지에서 받은 그대로 표시됩니다. 여기에는 대문자와 소문자를 혼합하여 사용하며 charset=us-ascii와 같은 메시지 유형 인수를 포함합니다.



예 20–2 메시지 유형 configutil 구성을 기반으로 한 IMAP SEARCH 세션

다음 IMAP 세션에서는 현재 선택한 메일함의 음성 메시지를 검색합니다.


3 search keyword voice_message
* SEARCH 2 4 6 
3 OK COMPLETED

앞의 예에서 메시지 2, 4, 6은 음성 메시지입니다. 검색에 사용되는 키워드는 store.messagetype.2.flagname 매개 변수 값인 voice_message입니다.


20.7.3 메시지 유형에 해당하는 알림 메시지 전송

알림은 텍스트 메시지, 음성 메시지 및 이미지 데이터 등의 여러 메시지 유형에 대해 상태 정보를 전달할 수 있습니다. Messaging Server에서는 Sun Java System Message Queue를 사용하여 메시지 유형에 해당하는 알림 정보를 보냅니다. Message Queue용 JMQ 알림 플러그 인 구성에 대한 자세한 내용은 Message Queue 22 장, JMQ 알림 플러그 인을 구성하여 Message Queue에서 사용할 메시지 생성을 참조하십시오.

JMQ 알림 플러그 인에서 특정 메시지 유형을 인식할 수 있게 하려면 store.messagetype.x.flagname 매개 변수를 포함한 store.messagetype 매개 변수를 구성해야 합니다. 자세한 내용은 메시지 유형을 구성하는 방법을 참조하십시오.

메시지 유형을 구성하고 나면 JMQ 알림 메시지에서 특정 메시지 유형을 식별할 수 있습니다. 메시지 유형별로 알림 메시지를 해석하고 각 유형에 대한 상태 정보를 메일 클라이언트로 전달하도록 Message Queue 클라이언트를 작성할 수 있습니다.

JMQ 알림 기능에서는 현재 메일함에 있는 메시지의 수를 메시지 유형별로 계산합니다. 수 값이 하나 전달되는 대신 각 메시지 유형의 수를 지정하는 배열이 알림 메시지와 함께 전달됩니다.

예를 들어, NewMsg 알림 메시지는 새 음성 메일 메시지 7개와 새 텍스트 메시지 4개가 사용자의 받은 메일함에 있다고 알리는 데이터를 전달할 수 있습니다.

메시지 유형별 알림 전송에 대한 자세한 내용은 22.3.3 특정 메시지 유형의 알림을 참조하십시오.

20.7.4 메시지 유형별로 할당량 관리

메시지 유형에 대해 할당량을 설정할 경우 해당 값을 할당량 루트에 포함합니다. 할당량 루트는 사용자에 대한 할당량을 지정합니다. 여기서는 특정 메시지 유형 및 메일함 폴더에 다른 할당량을 지정할 수 있으며, 유형으로 정의되지 않은 모든 나머지 메시지 유형, 폴더 및 메시지에 적용되는 기본 할당량을 지정할 수 있습니다.

할당량 설정 및 관리에 대한 자세한 내용은 20.8.2 할당량 작동 원리를 참조하십시오.

20.7.4.1 메시지 유형 할당량을 설정하기 전에

메시지 유형에 할당량을 설정하기 전에 다음 매개 변수를 구성해야 합니다.

20.7.4.2 메시지 유형 할당량 설정 방법

다음 중 한 가지 방법을 사용하여 메시지 유형의 할당량을 설정합니다.

configutil 매개 변수나 위에 표시된 LDAP 속성을 사용하여 메시지 유형에 대한 할당량을 설정하는 경우 store.messagetype.x.quotaroot 매개 변수를 사용하여 지정한 할당량 루트를 사용해야 합니다.

20.7.4.3 메시지 유형 할당량 루트의 예

이 절에 설명된 예에서는 사용자 joe에 대해 다음 할당량을 설정합니다.

이 할당량 루트는 다른 모든 폴더 및 메시지 유형을 합한 것보다(60M) Archive 폴더에 더 큰 저장소(100M)를 허용합니다. 또, Archive 폴더에는 메시지 제한이 없습니다. 이 예에서 아카이브에 문제가 되는 것은 저장소 제한 뿐입니다.

메시지 유형에는 저장소 및 메시지 수 할당량이 모두 있습니다.

메시지 유형 할당량은 Archive 폴더에 저장되었는지 또는 다른 폴더에 저장되었는지에 관계 없이 해당 유형의 모든 메시지를 합한 것에 적용됩니다.

기본 메일함 할당량은 텍스트 또는 음성 메시지 유형이 아니고 Archive 폴더에 저장되지 않는 모든 메시지에 적용됩니다. 즉, 메시지 유형 할당량과 Archive 할당량은 기본 메일함 할당량의 일부로 계산되지 않습니다.

이 예에서 할당량 루트를 설정하려면 다음 단계를 수행합니다.

  1. 다음과 같이 store.messagetype.x.quotaroot 매개 변수를 구성합니다.


    store.messagetype.1.quotaroot = text
    
    store.messagetype.2.quotaroot = voice
  2. 다음과 같이 사용자 joe에 대해 mailQuota 속성을 구성합니다.


    mailQuota: 20M;#text%10M;#voice%10M;Archive%100M
  3. 다음과 같이 사용자 joe에 대해 mailMsgQuota 속성을 구성합니다.


    mailMsgQuota: 5000;#text%2000;#voice%200

getquotaroot IMAP 명령을 실행하면 다음과 같이 결과 IMAP 세션에 사용자 joe의 메일함에 해당되는 모든 할당량 루트가 표시됩니다.


1 getquotaroot INBOX
* QUOTAROOT INBOX user/joe user/joe/#text user/joe/#voice
* QUOTA user/joe (STORAGE 12340 20480 MESSAGE 148 5000)
* QUOTA user/joe/#text (STORAGE 1966 10240 MESSAGE 92 2000)
* QUOTA user/joe/#voice (STORAGE 7050 10240 MESSAGE 24 200)

2 getquotaroot Archive
* QUOTAROOT user/joe/Archive user/joe/#text user/joe/#voice
* QUOTA user/joe/Archive (STORAGE 35424 102400)
* QUOTA user/joe/#text (STORAGE 1966 10240 MESSAGE 92 2000)

* QUOTA user/joe/#voice (STORAGE 7050 10240 MESSAGE 24 200)

20.7.5 메시지 유형별 메시지 만료

만료 및 제거 기능을 사용하면 만료 규칙에 정의된 기준에 따라 메시지를 한 폴더에서 다른 폴더로 옮기고, 아카이브에 보관하고, 메시지 저장소에서 제거할 수 있습니다. 이 작업은 imexpire 유틸리티를 사용하여 수행합니다.

imexpire 유틸리티는 관리자가 실행하기 때문에 할당량 적용을 무시합니다.

만료 규칙을 작성하고 imexpire 유틸리티를 사용하는 방법에 대한 자세한 내용은 20.9 자동 메시지 제거(만료 및 제거) 기능 설정 방법을 참조하십시오.

각기 다른 기준에 따라 다른 유형의 메시지가 만료되도록 만료 규칙을 작성할 수 있습니다.

만료 기능은 만료 기준 설정에 선택할 수 있는 많은 옵션을 제공하여 매우 유연합니다. 이 절에서는 서로 다른 기준에 따라 텍스트 및 음성 메시지가 만료되는 한 가지 예에 대해 설명합니다.

이 예에서는 다음과 같이 텍스트 및 음성 메시지 유형을 구성한 경우를 가정합니다.


store.messagetype.1 = text/plain

store.messagetype.2 = multipart/voice-message

또한 메시지 저장소가 내용 유형 헤더 필드를 읽고 메시지 유형을 결정하도록 구성된 경우를 가정합니다.


예 20–3 서로 다른 메시지 유형을 만료하는 샘플 규칙


TextInbox.folderpattern: user/%/INBOX
TextInbox.messageheader.Content-Type: text/plain
TextInbox.messagedays: 365
TextInbox.action: fileinto:Archive


VoiceInbox.folderpattern: user/%/INBOX
VoiceInbox.messageheader.Content-Type: multipart/voice-message
VoiceInbox.savedays: 14
VoiceInbox.action: fileinto:OldMail

VoiceOldMail.folderpattern: user/%/OldMail
VoiceOldMail.messageheader.Content-Type: multipart/voice-message
VoiceOldMail.savedays: 30
VoiceOldMail.action: fileinto:Trash

Trash.folderpattern: user/%/Trash
Trash.savedays: 7
Trash.action: discard

이 예에서 텍스트 메시지와 음성 메시지는 서로 다른 방식으로 만료되며 다음과 같이 서로 다른 일정을 따릅니다.

주: savedays 규칙을 사용하면 메시지를 저장한 후 지정된 일 수가 지났을 때 메시지가 만료됩니다. 일반적인 음성 메일 시스템에서 사용자는 음성 메일 메뉴로 음성 메일을 저장할 수 있습니다. 텍스트 메시지의 경우 메시지는 폴더로 이동하면 저장됩니다. messagedays 규칙을 사용하면 메시지가 메시지 저장소에 처음 도착한 후 지정된 일 수가 지나면 메시지가 저장된 폴더나 이동 빈도에 관계 없이 만료됩니다.