본문 바로가기
Exchange & Outlook/Development

Transport Agent 개발하기

by 강철 벼룩 2013. 1. 31.

이 글은 다음과 같은 환경에서 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

 

※ 참고 자료