본문 바로가기
Exchange & Outlook/System Administration

허브 전송 설정의 메시지 수신/발신 크기 정책

by 강철 벼룩 2011. 3. 20.

다음과 같은 Exchange 2010의 MMC 허브 전송의 [전역 설정]을 통해 수신되는 메시지와 발송하는 메시지의 최대 크기를 설정할 수 있다.

 


위 설정을 보면 해당 메일 서버를 사용하는 사용자 입장에서 최대 수신은 30 MB, 발송할 때는 13MB까지 인것으로 생각하기 쉬우나, 사실 위 전송 설정의 전송 제한 기능의 원래 취지는 다르다.

메시지 수신시 외부,내부와 상관없이 Sender 보낸 메시지는 Exchange서버를 거쳐 Recipient에게 도달한다.

다음과 같은 흐름이 되는 것이다.
Sender -> Exchange Organization -> Recipient

메시지 수신시에 MaxSenderSize 제한값은 모든 Sender(외부,내부) 대해서 적용된다그런 다음 MaxReceiveSize 설정값이 각각의 Recipients 적용된다.

MaxReceiveSize값이 MaxSenderSize값을 덮어쓰는 것이 아니라 각각 순서대로 실행되는 것이다.

예를 들어 위의 그림과 같은 설정에서 20MB 파일을 전달한다고 가정 해보자.

MaxSendSize : 13MB

MaxReceiveSize : 30MB

Send/Receive Connector : 100MB

 

메시지의 처리 과정은 다음과 같다.

1. 수신 커텍터에서는 최대100MB 허용하므로 수신조건에 맞기 때문에 메시지는 통과하여 조직으로 Inbound 된.

2. Sender 보낸 메시지의 크기를 체크합니다. MaxSendSize 13MB이지만 실제 메시지는 20MB이기 때문에 수신조건에 맞지 않는다.

3. MaxReceiveSize 30MB이고 수신자에게 따로 개별 수신메시지 제한이 없으므로 2 조건은 만족한다.

     4. 해당 메시지는 MaxSendSize제한에 걸려 Sender에게 반송됩니다.

 

결론 적으로 MaxSendSize제한값은 메시지를 보낼 적용되는 부분이 아니라 메시지를 보내고 받을 Sender 대하여 항상 체크되는 항목이다마찬가지로 MaxReceiveSize 제한값도 메시지 송수신시 모두 적용되는 항목이다.

 

이외에 다른 변수로는 외부에서 전송된 Native메시지는 Exchange서버에서 인코딩되고 디코딩되는 과정에서 최대 33%까지 메시지가 원본보다 커질수 있다. 그 때문에 30MB제한설정 환경에서 23MB이상 크기의 메시지는 정상적으로 수신되지 않을 있다.
 

[아웃룩을 이용해 메일 발송 전에 보낼 수 있는 메시지의 크기를 체크할 수 있다?]
클라이언트의 종류 또는 외부/내부등 환경에 따라서 메시지가 송수신되면서 메시지 크기를 체크하는 방법은 다를 수 있다. 외부에서 보내는 메일일 경우 수신자 서버의 메시지 크기제한값을 알 수 없기 때문에 메시지가 수신되면서 Transport 단에서 메시지 제한값을 Check하여 메시지를 수신할지 말지를 결정한다.

내부에서 Outlook으로 전달하는 경우 당연히 서버의 메시지 크기 제한값을 읽어와 Outlook에서 발송전에 메시지를 보낼 수 있는지 없는지 확인할 수 있다. 하지만 모든 Outlook버전이 그렇진 않다. Outlook 2003 서비스팩2 이하의 버전에서는 Outlook에서 첨부시에 첨부파일이 서버제한값에 걸리는지 체크되지 않고 외부에서 발송하는것처럼 메시지가 서버에 인입된 다음에 메시지 크기제한을 체크하게 된다.  때문에 Outlook 2003 SP2이하버전에서 1GB가량의 큰 메시지를 서버로 전달하면서 서버에서 메시지를 처리하는동안 서버의 리소스 사용량이 늘어나 버전 버킷으로 인한 메시지 송수신 장애등의 문제를 겪을 수가 있다. 그래서 서버에서 버전필터를 통해서 이러한 Outlook 버전의 연결을 금지시키기도 한다.

결론적으로 메시지 송수신시 서버의 Transport 제한값을 모두 Check 해야 한다. Outlook과 같은 Smart Client의 경우 서버의 제한값을 전송전에 체크해 메시지 인입을 사전에 막을 수 있다. 하지만 Outlook 2003 SP2이전의 MAPI 또는 Non MAPI 클라이언트의 경우 이러한 부분을 메시지 발송전에 체크할 수 없으므로 서버에서 인입되는 메시지에 대한 Size Limit 체크기능이 필요하다.