2008-10-07 4 views
2

Exchange 사서함의 메시지 수명을 계산하여 프로그램 (C++, MAPI)에서 처리하기 전에 최소 1 분 이상 머물러 있는지 확인하고 싶습니다. 이 방법으로 spam filter we use은 작업을 수행 할 수있는 충분한 시간을 가져야합니다.MAPI를 통한 Exchange 서버 시간 읽기

Google 프로그램이 실행되는 PC의 시간이 Exchange 서버에서 사용되는 시간과 다를 수 있으므로 프로그램에서 MAPI를 통해 서버 시간을 읽어야합니다.

우아한 해결책이 있습니까? 내가 생각할 수있는 한 가지 방법은 일부 항목을 수정하고 바로 PR_LAST_MODIFICATION_TIME을 읽는 것이지만 나는 그것을 피하고 싶습니다.

편집 :
우리의 프로그램은 10 분마다 실행 저널 사서함을 읽는 배치 작업이다.

답변

1

메시지가 Exchange 사서함에 도착할 때 MAPI 이벤트 알림이 표시된다고 가정합니다. 이 메시지를 대기열에 넣고 메시지를 처리하기 전에 n 초 (예 : 60 초) 대기하는 것이 좋습니다. 시간은 알림 이벤트에 상대적이므로 컴퓨터 간의 클럭 드리프트와 관련하여 문제가 없습니다.

응용 프로그램을 시작할 때 기존 메시지에 대해이 작업을 다시 수행해야하지만이 경우 문제가 발생할 것이라고 생각하지 않습니다.

0

PR_MESSAGE_DELIVERY_TIME을 사용할 수 있습니다. MSDN 당으로

:

PR_MESSAGE_DELIVERY_TIME 속성은 메시지가 서버에 저장된 시간보다는 전송 공급자는 로컬 저장소에 서버에서 메시지를 복사 다운로드 시간을 설명합니다.

그 외 - 솔루션이 클라이언트에서 실행되는 경우 - 처음에는 클라이언트 시간을 사용하지 않으시겠습니까? 상대 시간 (예 : '1 분 후 ...')에 대해 시계가 잘못되었거나되지 않았으므로 차이가 없어야합니다.

관련 문제