Transport Agent 개발하기
이 글은 다음과 같은 환경에서 Exchange 서버의 Hub Transport 계층에서 동작하는 TransportAgent를 개발하는 과정을 소개합니다. 여기서 소개하는 에이전트 모듈은 간단히 메일 제목 앞에 설정 문구를 삽입하는 기능을 합니다.
☞ Exchnage Server 2010
☞ Viusal Studio 2008
1. 먼저 Visual Studio 2008에서 클래스 라이브러리를 위한 새로운 프로젝트를 생성합니다.
2. Exchange Server에서 제공하는 오픈 API 참조를 추가하기 위해 다음 두 가지 dll 파일과 관련 xml 파일을 앞서 만든 프로젝트의 솔루션 파일에 복사합니다.
- Program Files\Microsoft\Exchange Server\V14\Public\Microsoft.Exchange.Data.Common.dll
- Program Files\Microsoft\Exchange Server\V14\Public\Microsoft.Exchange.Data.Transport.dll
3. Visual Studio 솔루션 탐색기에서 앞서 복사한 dll 파일을 참조로 추가합니다.
4. 프로젝트에 만들어진 클래스 파일을 열고 아래 그림과 같이 ⑴ 참조를 선언한 뒤 ⑵RoutingAgentFactory를 상속합니다.
5. 메일 제목을 수정하도록 코드를 작성합니다. 이를 위해 다음과 같은 스텝으로 진행합니다.
ⓐ OnCategorizedMessageHandler를 추가합니다.
ⓑ 모든 메일의 제목에 특정 메시지를 추가하는 코드를 다음 처럼 작성합니다.
ⓒ 이제 솔루션을 빌드합니다.
ⓓ 생성된 클래스 라이브러리를 확인합니다.
6. 클래스 라이브러리가 정상적으로 생성되었다면, 이제 다음의 단계를 따라 Agent를 등록하고 동작을 확인해봅니다. 다음의 명령들은 Exchange Management Shell에서 수행하도록 합니다.
ⓐ TransportAgent 서비스 중지
- Net Stop MSExchangeTransport
ⓑ 앞서 만든 dll 파일을 Exchange Server에 등록합니다. 이 때 다음의 옵션 값들을 적용합니다.
- Name: dll 파일에 나타나는 TransportAgent의 ID 값
- TransportAgentFactory: 소스의 Namespace와 Class 명
- AssemblyPath: 실제 dll 파일의 경로
ⓒ 처음 등록시 Agent의 Enabled 값이 false 인 것을 활성화 합니다.
- Enable-TransportAgent -Identity “ClassLibrary_01“
ⓓ TransportAGent 서비스를 시작합니다.
- Net Start MSExchangeTransport
ⓔ 등록한 TransportAgent의 우선순위를 1로 변경합니다.
- Set-TransportAgent -Identity "ClassLibrary_01”–Priority 1
※ 참고 자료