전송 에이전트

적용 대상: Exchange Server 2013

전송 에이전트를 사용하면 Microsoft, 타사 공급업체 또는 조직에서 만든 사용자 지정 소프트웨어를 Exchange 서버에 설치할 수 있습니다. 이 소프트웨어는 전송 파이프라인을 통과하는 전자 메일 메시지를 처리할 수 있습니다. 2013년 Microsoft Exchange Server 전송 파이프라인은 다음 프로세스로 이루어집니다.

  • 클라이언트 액세스 서버의 프런트 엔드 전송 서비스

  • 사서함 서버의 전송 서비스

  • 사서함 서버의 사서함 전송 서비스

  • Edge 전송 서버의 전송 서비스

전송 파이프라인에 대한 자세한 내용은 메일 흐름을 참조하세요.

이전 버전의 Exchange와 마찬가지로 Exchange 2013 전송은 Microsoft Exchange Server 2013 전송 에이전트 SDK를 통해 확장성을 제공합니다. SDK의 Exchange 2013 버전은 Microsoft .NET Framework 버전 4.0을 기반으로 하며 타사에서 다음과 같은 미리 정의된 클래스를 구현할 수 있도록 합니다.

  • SmtpReceiveAgent

  • RoutingAgent

  • DeliveryAgent

SDK의 라이브러리를 준수하는 경우 결과 어셈블리는 Exchange 2013에 등록됩니다. 이 어셈블리는 SMTP 세션 또는 메시지 처리의 특정 단계에서 에이전트를 로드하고 이벤트 처리기를 호출합니다. 이러한 단계 또는 이벤트는 에이전트 정의의 일부입니다. 에이전트 등록 정보는 XML 구성 파일에 저장됩니다.

다음 목록에서는 Exchange 2013에서 전송 에이전트를 사용하기 위한 요구 사항을 설명합니다.

  • 사서함 서버 및 Edge 전송 서버의 전송 서비스는 SDK의 모든 미리 정의된 클래스를 완벽하게 지원하므로 2010년 Microsoft Exchange Server 허브 전송 또는 Edge 전송 서버 역할에 대해 작성된 타사 전송 에이전트는 Exchange 2013의 전송 서비스에서 작동해야 합니다.

  • 프런트 엔드 전송 서비스는 SDK의 SmtpReceiveAgent 클래스만 지원하며 타사 에이전트는 OnEndOfData SMTP 이벤트에서 작동할 수 없습니다.

  • 사서함 전송 서비스는 SDK를 전혀 지원하지 않으므로 사서함 전송 서비스에서 타사 에이전트를 사용할 수 없습니다.

버전 4.0 이전의 .NET Framework 버전을 기반으로 하는 레거시 전송 에이전트에 대한 지원은 기본적으로 사용하도록 설정되지 않지만 사용하도록 설정할 수 있습니다. 지침은 레거시 전송 에이전트에 대한 지원 사용을 참조하세요.

전송 에이전트 관리에 대한 업데이트

Exchange 2013 전송 파이프라인의 업데이트로 인해 전송 에이전트 cmdlet은 전송 서비스와 프런트 엔드 전송 서비스를 구분해야 합니다. 특히 클라이언트 액세스 서버와 사서함 서버가 동일한 컴퓨터에 설치된 경우 입니다. 자세한 내용은 전송 에이전트 관리를 참조하세요.

전송 에이전트 관리 cmdlet은 에 %ExchangeInstallPath%TransportRoles\Shared있는 구성 파일을 조작합니다. 사서함 서버 및 Edge 전송 서버의 전송 서비스의 경우 파일은 입니다 agents.config. 클라이언트 액세스 서버의 프런트 엔드 전송 서비스의 경우 파일은 입니다 fetagents.config. 두 파일 모두 Exchange 2010과 동일한 형식을 사용합니다. 전송 에이전트 관리에 대한 자세한 내용은 전송 에이전트 관리를 참조하세요.

전송 에이전트 및 SMTP 이벤트

전송 에이전트는 SMTP 이벤트를 사용합니다. 이러한 이벤트는 메시지가 전송 파이프라인을 통해 이동할 때 트리거됩니다. SMTP 이벤트는 SMTP 변환 도중 및 조직 전체에서의 메시지 라우팅 도중 특정 시점에 메시지에 대한 액세스를 전송 에이전트에 제공합니다.

Exchange 2013에는 새로운 SMTP 수신 이벤트가 있습니다. SMTP 수신은 클라이언트 액세스 서버의 프런트 엔드 전송 서비스, 사서함 서버의 전송 서비스 및 Edge 전송 서버의 전송 서비스 및 사서함 서버의 사서함 전송 배달 서비스에 있습니다. 범주는 사서함 서버 및 Edge 전송 서버의 전송 서비스에만 존재합니다. 전송 서비스 및 범주에 대한 자세한 내용은 메일 라우팅을 참조하세요.

다음 표에는 전송 파이프라인의 메시지에 대한 액세스를 제공하는 SMTP 이벤트가 나열되어 있습니다.

SMTP 수신 이벤트

순서 SMTP 이벤트 설명
1 OnConnectEvent 이 이벤트는 원격 SMTP 호스트의 초기 연결에 의해 트리거됩니다.
2 OnHeloCommand 이 이벤트는 원격 SMTP 호스트에서 HELO 명령을 실행할 때 트리거됩니다.
3 OnEhloCommand 이 이벤트는 원격 SMTP 호스트에서 EHLO 명령을 실행할 때 트리거됩니다.
4 OnStartTlsCommand 이 이벤트는 원격 SMTP 호스트에서 STARTTLS 명령을 실행할 때 트리거됩니다.
5 OnAuthCommand 이 이벤트는 원격 SMTP 호스트에서 AUTH 명령을 실행할 때 트리거됩니다.
6 OnProcessAuthentication 이 이벤트는 원격 SMTP 호스트에 대한 인증이 처리될 때 트리거됩니다.
7 OnEndOfAuthentication 이 이벤트는 원격 SMTP 호스트가 인증을 완료할 때 트리거됩니다.
8 OnXSessionParamsCommand 이 이벤트는 원격 SMTP 호스트에서 XSESSIONPARAMS 명령을 실행할 때 트리거됩니다.
9 OnMailCommand 이 이벤트는 원격 SMTP 호스트에서 MAIL FROM 명령을 실행할 때 트리거됩니다.
10 OnRcptToCommand 이 이벤트는 원격 SMTP 호스트에서 RCPT TO 명령을 실행할 때 트리거됩니다.
11 OnDataCommand 이 이벤트는 원격 SMTP 호스트에서 DATA (텍스트) 또는 BDAT (이진 데이터) 명령을 실행할 때 트리거됩니다.
12 OnEndOfHeaders 이 이벤트는 원격 SMTP 호스트가 전자 메일 메시지 헤더 제출을 완료했을 때 트리거됩니다. 메시지 머리글과 메시지 본문을 구분하는 빈 줄(<CRLF>)로 표시됩니다.
13 OnProxyInboundMessage 이 이벤트는 클라이언트 액세스 서버의 프런트 엔드 전송 서비스에서 인바운드 SMTP 세션을 사서함 서버의 전송 서비스로 릴레이하거나 프록시 할 때 트리거됩니다.
14 Onendofdata 이 이벤트는 원격 SMTP 호스트가 데이터 종료 명령을 실행하면 트리거됩니다. 명령으로 시작하는 텍스트 세션의 DATA 경우 데이터 표시기의 끝은 입니다 <CRLF>.<CRLF>. 명령으로 시작된 이진 세션의 BDAT 경우 데이터 표시기의 끝은 입니다 BDAT LAST.
** OnHelpCommand 이 이벤트는 원격 SMTP 호스트에서 HELP 명령을 실행하면 트리거됩니다.
** OnNoopCommand 이 이벤트는 원격 SMTP 호스트에서 NOOP 명령을 실행하면 트리거됩니다.
** OnReject 이 이벤트는 수신 SMTP 호스트가 전송 SMTP 호스트에 임시 또는 영구 배달 상태 알림(DSN) 코드를 발급하는 경우 트리거됩니다.
** OnRsetCommand 이 이벤트는 보내는 SMTP 호스트에서 RSET 명령을 실행하면 트리거됩니다.
15 OnDisconnectEvent 이 이벤트는 SMTP 호스트를 받거나 보내는 SMTP 대화의 연결 끊김에 의해 트리거됩니다. 일반적으로 이 문제는 원격 SMTP 호스트에서 QUIT 명령을 실행할 때 발생합니다.

** 이러한 이벤트는 OnConnectEvent 이후와 OnDisconnectEvent 이전에 언제든지 발생할 수 있습니다.

범주 이벤트

순서 SMTP 이벤트 설명
1 OnSubmittedMessage 이 이벤트는 수신 사서함 서버 또는 Edge 전송 서버의 전송 서비스의 제출 큐에 메시지가 도착하면 트리거됩니다.
2 OnResolvedMessage 이 이벤트는 모든 받는 사람이 확인되었지만 각 수신자에 대해 다음 홉이 결정되기 전에 트리거됩니다. OnResolvedMessage 라우팅 이벤트를 사용하면 후속 이벤트가 수신자별 SetRoutingOverride 메서드를 사용하여 기본 라우팅 동작을 재정의할 수 있습니다.
3 OnRoutedMessage 이 이벤트는 메시지가 분류되고, 메일 목록이 확장되고, 받는 사람이 확인된 후에 트리거됩니다.
4 OnCategorizedMessage 이 이벤트는 범주가 메시지 처리를 완료할 때 트리거됩니다.

전송 에이전트 우선 순위

전송 에이전트가 전송 파이프라인의 메시지에서 작동하는 순서를 결정하는 요인에는 두 가지가 있습니다.

  1. 전송 에이전트가 등록된 SMTP 이벤트와 해당 SMTP 이벤트가 메시지를 발견할 때입니다.

  2. 동일한 SMTP 이벤트에 여러 에이전트가 등록된 경우 전송 에이전트에 할당되는 우선 순위 값입니다. 가장 높은 우선 순위는 1입니다. 정수 값이 높을수록 에이전트 우선 순위가 낮습니다.

예를 들어 다음 전송 에이전트를 구성한다고 가정해 보겠습니다.

  • 우선 순위가 1인 전송 에이전트 A와 우선 순위가 2인 전송 에이전트 C가 OnEndOfHeaders SMTP 이벤트에 등록되어 있습니다.

  • 우선 순위가 4인 전송 에이전트 B가 OnMailCommand SMTP 이벤트에 등록되어 있습니다.

OnMailCommand 이벤트가 OnEndOfHeaders 이벤트 전에 메시지를 발견하기 때문에 전송 에이전트 B가 메시지에 먼저 적용됩니다. 메시지가 OnEndOfHeaders 이벤트에 도달하면 전송 에이전트 A의 우선 순위가 전송 에이전트 C보다 높기 때문에(낮은 정수 값) 전송 에이전트 C 전에 전송 에이전트 A가 적용됩니다.

기본 제공 전송 에이전트

Exchange 2013에는 스팸 방지, 전송 규칙 및 저널링과 같은 기능을 제공하는 많은 기본 제공 전송 에이전트가 포함되어 있습니다. Exchange 2013 사서함 서버 및 클라이언트 액세스 서버의 기본 제공 전송 에이전트 대부분은 전송 에이전트 관리 cmdlet에서 보이지 않고 관리할 수 없습니다. 표시되고 관리하기 쉬운 거의 모든 기본 제공 전송 에이전트는 사서함 서버 및 Edge 전송 서버의 전송 서비스에 있습니다.

사서함 서버에서 더 흥미로운 기본 제공 전송 에이전트는 다음 표에 설명되어 있습니다. 이 테이블에는 보이지 않고 관리하기 쉬운 전송 에이전트가 많이 포함되어 있지 않습니다.

사서함 서버의 흥미로운 기본 제공 전송 에이전트

에이전트 이름 관리? 우선 순위 SMTP 또는 범주 이벤트
전송 규칙 에이전트 1 OnResolvedMessage
맬웨어 에이전트 2 OnSubmittedMessage
문자 메시지 라우팅 에이전트 3 OnSubmittedMessage
문자 메시지 배달 에이전트 4 해당 없음
저널 에이전트 아니오 구성할 수 없음 OnRoutedMessage
저널 보고서 암호 해독 에이전트 아니오 구성할 수 없음 OnCategorizedMessage
RMS 암호 해독 에이전트 아니오 구성할 수 없음 OnSubmittedMessage
RMS 암호화 에이전트 아니오 구성할 수 없음 OnSubmittedMessage
OnRoutedMessage
RMS 프로토콜 암호 해독 에이전트 아니오 구성할 수 없음 Onendofdata

Edge 전송 서버에서 대부분의 기본 제공 전송 에이전트는 전송 에이전트 관리 cmdlet 또는 다른 기능별 cmdlet을 통해 표시되고 관리할 수 있습니다.

Edge 전송 서버에서 더 흥미로운 기본 제공 전송 에이전트는 다음 표에 설명되어 있습니다. 이 테이블에는 보이지 않거나 관리하기 쉬운 전송 에이전트가 포함되지 않습니다.

Edge 전송 서버의 흥미로운 기본 제공 전송 에이전트

에이전트 이름 관리? 우선 순위 SMTP 또는 범주 이벤트
연결 필터링 에이전트 1 OnConnectEvent
OnMailCommand
OnRcptComand
OnEndOfHeaders
주소 다시 쓰기 인바운드 에이전트 2 OnRcptComand
OnEndOfHeaders
Edge 규칙 에이전트 3 Onendofdata
콘텐츠 필터 에이전트* 4 Onendofdata
보낸 사람 ID 에이전트* 5 OnEndOfHeaders
보낸 사람 필터 에이전트* 6 OnMailCommand
OnEndOfHeaders
받는 사람 필터 에이전트 7 OnRcptCommand
프로토콜 분석 에이전트* 8 OnConnectEvent
OnEndOfHeaders
Onendofdata
OnReject
OnRsetCommand
OnDisconnectEvent
첨부 파일 필터링 에이전트 9 Onendofdata
주소 다시 쓰기 아웃바운드 에이전트 10 OnSubmittedMessage
OnRoutedMessage

* 사서함 서버에 이러한 스팸 방지 에이전트를 설치하고 구성할 수도 있습니다. 자세한 내용은 사서함 서버에서 스팸 방지 기능을 사용 하도록 설정을 참조하십시오.

전송 에이전트 문제 해결

전송 에이전트 문제를 해결하는 데 도움이 되도록 다음 기능을 사용할 수 있습니다.