본문 바로가기
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

 

※ 참고 자료